sql 2000里面有一个 myuser表  里面有Uname 和Upwd字段  都是varchar 类型的
代码如下  :
package zhil;
import java.sql.*;
class cx{
  Connection conn ;
  public cx(){
    try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection conn = DriverManager.getConnection("jdbc:odbc:sql");
      System.out.println("数据库连接成功");
    }
    catch (Exception ex) {
      ex.printStackTrace();
    }
  }
  void insert(String Uname,String Upwd){
   try {
     Statement st = conn.createStatement();
      int unm = st.executeUpdate("insert into myuser values('"+Uname+"','"+Upwd+"')");
      System.out.println("所影响记录的行数为:"+unm);
      st.close();
   }
   catch (Exception ex) {
     ex.printStackTrace();
   }
  }
  void closeconn(){
   try {
      conn.close();
   }
   catch (Exception ex) {
   }
  }
}
public class ODBC {
  public static void main(String[] args) {
    cx sql = new cx();
    sql.insert("张三","123");
    sql.closeconn();
  }
}当代码执行到Statement st = conn.createStatement();时就跳到处理异常哪里去了接着就报下面的错误
java.lang.NullPointerException at zhil.cx.insert(ODBC.java:17) at zhil.ODBC.main(ODBC.java:37)

解决方案 »

  1.   

    connection 没有得到 看看连接对没 是否是连接了这个数据库 
      

  2.   

    1、 控制面板--管理工具--数据源(ODBC)--系统DSN —— 创建一个数据源 ;2、 连接的服务器输入(localhost或 . )如:.;3、 然后点下一步,一直到选择数据库。选择你需要的数据库(如:pubs),然后数据源就创建好了;具体代码(假设,创建的数据源名称为“ds”,数据库用户为“sa”,密码为“”)   import java.sql.Connection;
    import java.sql.DriverManager;public class DbConn {
        public Connection conn = null;
        public DbConn(){
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                conn = DriverManager.getConnection("jdbc:odbc:ds","sa","");
                System.out.println("连接成功");
            } catch (Exception e) {
                System.out.println("连接失败");
            }
        }   
    }
     
      

  3.   

    2楼的朋友 连接数据库应该是连接好了的  因为运行后它提示了连接数据库成功   就是创建Statement 的时候报错  我按照你的链接方法做了  但还是没链接上 
      

  4.   

    LZ不妨看看是否有连接的驱动程序或者已经添加了数据库的连接驱动包。
     希望对LZ有帮助
      

  5.   

    LZ你的Conn是一个空的你知道嘛?这个是你的代码
    Connection conn ;//这个对象一直是null你知道嘛
    public cx(){
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection conn = DriverManager.getConnection("jdbc:odbc:sql");、、这个对象并不是上面的那个对象
    System.out.println("数据库连接成功");
    Connection conn ;   Connection conn = DriverManager.getConnection("jdbc:odbc:sql");
    你说他们是相同的
    你改成这样的
    Connection conn ;//
    public cx(){
    try {
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
     conn = DriverManager.getConnection("jdbc:odbc:sql");//将对象赋值
    System.out.println("数据库连接成功");
    这样才将conn