1

在一个非常简单的 SELECT 查询中检索时遇到问题。我正在尝试从表“db_con_type”中检索所有信息并将它们放入 dbChoices 的数组字符串中。

数据库:

Select 查询在报表设计器中运行良好。对不起,我不能上传图片,因为我是新来的。

代码:

public void setDbTypeChoices()
    {
       try
        {
            con2db connect2db = new con2db();
            con = connect2db.aksesDatabase();
            stmt = con.createStatement();
            String sql = "SELECT * FROM db_con_type";

            rs = stmt.executeQuery(sql);

            int i = 0;
            while(rs.next())
            {
                this.dbChoices[i] = rs.getString("DB_Type");
                i++;
            }

            rs.close();
            stmt.close();
            ps.close();
            con.close();

            //Close Connection
            connect2db.tutupKoneksi();
        }
       catch(Exception e)
       {
           System.out.println("SQL ERROR 1 = " + e.getMessage());
           System.out.println("SQL ERROR 2 = " + e.toString());
       }
    }

错误:

SQL 错误 1 ​​= 空

SQL 错误 2 = java.lang.NullPointerException

问题:

知道发生了什么吗?任何解决方案?

谢谢

4

2 回答 2

0

发现了问题。这是因为 ps.close() 代码..

因为我不在这里使用它,但我关闭它并出现问题..

感谢 Luiggi 的 printStackTrace 想法。感谢所有答案。我真的很感激.. :D

于 2012-10-03T02:29:44.593 回答
0

顺便说一句,这是一个很好的做法,如果你正在处理ResultSet它,你首先检查返回的结果集是否不为空,然后再对其进行操作,例如,如果是rs.next(),这会给你一个 NPE 。rsnull

if(rs != null) {
    while(rs.next()) {
        this.dbChoices[i] = rs.getString("DB_Type");
        i++;
    }
}
于 2012-10-03T02:38:12.760 回答