在这段代码中我试图从id为lopp变量获取一行 并将其打印成基于计数创建的标签 虽然count小于数据库中的总行数,但是当我在mysql中执行它时返回正确的ans。 但是当我在最后一行使用rs.getstring("概念名称")来获取"概念名称"的内容时列我得到空结果集错误。
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost:3306/niitdb","root","");
for(pos=0; pos<7; pos++){
SQL = "SELECT `concept name` FROM `concepts " +course+ "` where `concept id` = " + pos+1;
Statement stmt = con.createStatement();
rs = stmt.executeQuery(SQL);
rs.next();
Cname[cnt] = new JLabel(rs.getString("concept name")); // error is on this line
}
答案 0 :(得分:1)
JDBC驱动程序可能无法正确处理空白列名。我会尝试它
SELECT `concept name` as concept_name FROM ...
然后
if (rs.next())
{
Cname[cnt] = new JLabel(rs.getString("concept_name"));
}
因为你不应该在没有测试结果的情况下调用rs.next()
,并且如果它是真的那么只能继续获取列值。