Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Can';t从ResultSet获取值以在Java中填充jLabel_Java_Jlabel_Derby_Resultset - Fatal编程技术网

Can';t从ResultSet获取值以在Java中填充jLabel

Can';t从ResultSet获取值以在Java中填充jLabel,java,jlabel,derby,resultset,Java,Jlabel,Derby,Resultset,我不熟悉编程,并尝试将sql查询中的值分配给jLabel。程序编译和运行时没有错误,但不会更改jLabel。根据我的研究,这应该行得通,但不行。数据库连接正常。调试时,问题似乎出在以下行: 双d=rs.getDouble(1); 这是我的密码: String sum = "SELECT SUM(TOTAL) FROM PUNCHES WHERE EID = 1"; Statement st = con.createStatement(); ResultSet rs =

我不熟悉编程,并尝试将sql查询中的值分配给jLabel。程序编译和运行时没有错误,但不会更改jLabel。根据我的研究,这应该行得通,但不行。数据库连接正常。调试时,问题似乎出在以下行: 双d=rs.getDouble(1); 这是我的密码:

String sum = "SELECT SUM(TOTAL) FROM PUNCHES WHERE EID = 1"; 

Statement st = con.createStatement();            
ResultSet rs = st.executeQuery(sum); //rs should have 1 row, 1 column

double d = rs.getDouble(1);
lblGrandTotal.setText(String.valueOf(d)); 

如果我用12.345这样的任意值替换d,它就可以工作。

您忘记调用
rs.next()


好的,您在一个复杂的程序中遇到了一个问题,这个程序结合了GUI代码和SQL数据库代码。我强烈建议您不要这样做,而是将代码划分为可单独测试的较小单元,并将GUI与数据库代码分开测试。在合并之前让他们都工作。谢谢吉姆。这就解决了问题。我没有意识到我需要迭代一个只有一个结果的结果集。虚拟光标位于查询后的第一行之前。
ResultSet rs = st.executeQuery(sum); //rs should have 1 row, 1 column
if (rs.next())
{
    double d = rs.getDouble(1);
    ...
}
else
    // Failed to get result, do something useful here