我用sql server2000 sp3,jre1.5.0.09,jdbc sp3的驱动,eclipse3.2.1。程序中数据库联结、驱动均成功。我想从库表中查寻数据显示到Jtable中,其中用查询语句String sql="select * from table"就成功,但是一加上where子句。例如:String sql="select * from table where name='赵伟'"就不行(表中肯定有此纪录),‘赵伟’去掉单引号也不行(库表中name字段定义为varchar(10))。一运行就报错:Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException。这是怎么回事。高手分析救济一下。

解决方案 »

  1.   

    既然select * 能查出來證明連接肯定沒有問題。+where后不能顯示證明無負荷條件的紀錄
    name是varchar類型的會自動去除記錄兩端的空格(英文空格),我試驗了下,中文空格是不會被去除的,肯定是'赵伟'的左側或者右側有若干個中文空格造成的
    所以沒有滿足這個條件的紀錄select * from table where name='赵伟'
    去數據庫刪除空格或者用這個語句實驗下SELECT * FROM table WHERE name LIKE '%赵伟%'
      

  2.   

    把select * from table where name='赵伟'直接扔到查询分析器里看能不能查到记录
      

  3.   

    你用 System.out.println(sql); 打印出这个字符串,然后贴到查询分析器里看能不能查到记录。
      

  4.   

    select * from table where [name]='赵伟'
    你这样试一下
      

  5.   

    引用了为null的对象,抛出NullPointerException
      

  6.   

    String sql="select * from table"如果成功,
    String sql="select * from table where name like '赵伟%'";
    这样应该可以!
    如果还是不行就
    看表中的域名是否是name
      

  7.   

    何不试这个呢!
    String sql="select * from table where [name] like '%赵伟%'"
    试一下看可以不!