日期:2014-05-20  浏览次数:21076 次

ResultSet查询数据库,如何判断查询结果为空?
Java code
ResultSet rs = sql.search(sql_SeededRice);  // sql_SeededRice为查询语句
                while(rs.next())
                {
                    for(i = 1; i <= 2;i++)  // 两列
                    {
                        if(rs.getString(i) != null)
                            responseText += rs.getString(i);
                        else if(rs.getString(i) == null)  // 当列中值时显示"无查询结果"
                            responseText += "无查询结果";
                    }
                }


问题:当列中有值时,可以把值赋给responseText的
但是,当列中无值时(如图),却不能将"无查询结果"赋给responseText,是不是用rs.getString(i) == null这个判断条件不对呢?
我在jdk里看了下,ResultSet的getString方法返回结果是null的。


------解决方案--------------------
上面的回复错了帖子
你这个帖子有两种情况
第一,直接查询结果就有0条,这是一种
第二,查询结果有至少一条,但是对应的字段可能没有值

如果第一种判断,那么你可以利用
int i=0;
while(rs.next()){ i++}
获得i的值,判断结果如果0条就是i=0
如果第二种,如果是字符串的类型,就通过getString("xx")看看返回值是否为null判断
------解决方案--------------------
我不是版主啊。
------解决方案--------------------
如果是没有记录,也就是说在数据库是no record 这种情况的话,

 while(rs.next())这个语句根本不会走进去。

所以你的responseText 赋值语句根本不会执行。
------解决方案--------------------
探讨
上面的回复错了帖子
你这个帖子有两种情况
第一,直接查询结果就有0条,这是一种
第二,查询结果有至少一条,但是对应的字段可能没有值

如果第一种判断,那么你可以利用
int i=0;
while(rs.next()){ i++}
获得i的值,判断结果如果0条就是i=0
如果第二种,如果是字符串的类型,就通过getString("xx")看看返回值是否为null判断

------解决方案--------------------
探讨
ResultSet rs = sql.search(sql_SeededRice); // sql_SeededRice为查询语句
while(rs.next())
{
for(i = 1; i <= 2;i++) // 两列
{
if(rs.getString(i) != null)
responseText += rs.getString(i);
else if(rs.getString(i) == null) // 当列中值时显示"无查询结果"
responseText += "无查询结果";
}
}

------解决方案--------------------
没值是不会进while循环~