我在sqlite查询结果的子查询中遇到问题。当执行下面的查询时,成功返回Sqlite数据库中的结果,但当运行程序时,它不返回任何值。我在下面的程序中做错了什么。请给我一些建议。
查询:
select * from (SELECT count(*), col2,col9,col4 FROM tbl_data_1 WHERE col4=6 AND col3 BETWEEN '2012-11-21' AND '2013-04-19' GROUP BY col2,col9,col4) as inr_qry where col2= '20016' and col9='3'
java程序:
Vector<Vector> dataList = new Vector();
for (int i =0; i < listRows.size(); i++){
Vector cols = new Vector();
cols.add(listRows.get(i));
for (int j = 1; j < listColumns.size(); j++){
// below query will be dynamic
String inner_query = "select * from (SELECT count(*), col2,col9,col4 FROM tbl_data_1 WHERE col4=6 AND col3 BETWEEN '2012-11-21' AND '2013-04-19' GROUP BY col2,col9,col4) as inr_qry where col2= '20016' and col9='3'";
PreparedStatement data_st = database.getConnection().prepareStatement(inner_query);
ResultSet data_rs = data_st.executeQuery();
while (data_rs.next()) { // result not successful, result set not having records
SLogger.printD("data_rs.getString(1): " +data_rs.getString(1));
cols.add(data_rs.getString(1));
}
}
dataList.add(cols);
}
听起来很奇怪,但是作为一个int是预期的,你能试着用
getInt(1)
而不是
getString(1)
您不需要PreparedStatement
。相反,请使用以下命令:
Statement stmt = database.getConnection().createStatement();
有几种不同方法可以生成查询结果: 结果数组 结果行 自定义结果对象 结果辅助方法 Class Reference 结果数组 result() 方法 该方法以**对象数组**形式返回查询结果,如果查询失败返回**空数组**。 一般情况下,你会像下面这样在一个 foreach 循环中使用它: $query = $this->db->query("YOUR QUERY"); foreach ($que
要运行查询,在工具栏中点击 运行 。如果查询语句是正确的,该查询将被运行,如果该查询应该返回数据,结果 选项卡会打开查询返回的数据。如果运行查询时发生错误,运行停止,显示相应的错误信息。 结果 选项卡以网格显示查询返回的结果数据。数据可以用两种模式显示:网格查看 和 表单查看。详细信息请看表查看 器。 提示:Navicat 支持返回 10 个结果集。 注意:你可以通过选择 查看 -> 显示结果 -
你可以在任何的服务器运行查询。在工具栏的下拉式列表中选择目标服务器和数据库。然后点击 “运行”。如果该查询语句是正确的,它将被运行。如果该查询应该返回数据,“结果”选项卡会打开并显示返回的数据。如果运行查询时发生错误,运行会停止并显示相应的错误信息。 “结果”选项卡以网格显示查询返回的结果数据。数据可以用三种模式显示:网格视图、树视图和 JSON 视图。详细信息请参阅数据查看器。 【注意】Navi
你可以在任何的服务器运行查询。在工具栏的下拉式列表中选择目标服务器、数据库和/或模式。然后点击 “运行”。如果该查询语句是正确的,它将被运行。如果该查询应该返回数据,“结果”选项卡会打开并显示返回的数据。如果运行查询时发生错误,运行会停止并显示相应的错误信息。 “结果”选项卡以网格显示查询返回的结果数据。数据可以用两种模式显示:网格视图和表单视图。详细信息请参阅数据查看器。 【注意】Navicat
你可以在任何的服务器运行查询。在工具栏的下拉式列表中选择目标服务器和数据库。然后点击 。如果该查询语句是正确的,它将被运行。如果该查询应该返回数据,“结果”选项卡会打开并显示返回的数据。如果运行查询时发生错误,运行会停止并显示相应的错误信息。 “结果”选项卡以网格显示查询返回的结果数据。数据可以用三种模式显示:网格视图、树视图和 JSON 视图。详细信息请参阅数据查看器。 【注意】Navicat
你可以在任何的服务器运行查询。在工具栏中,从下拉式菜单选择目标服务器、数据库和/或模式。然后点击 。如果该查询语句是正确的,它将被运行。如果该查询应该返回数据,“结果”选项卡会打开并显示返回的数据。如果运行查询时发生错误,运行会停止并显示相应的错误信息。 “结果”选项卡以网格显示查询返回的结果数据。数据可以用两种模式显示:网格视图和表单视图。详细信息请参阅数据查看器。 【注意】Navicat 支持