简体   繁体   English

java.sql.SQLException:结果集开始之前

[英]java.sql.SQLException: Before start of result set

I don't understand why this isn't working, I keep getting this java.sql.SQLException: Before start of result set error, ive looked online but because ive been staring at a computer screen for hours my brain is frazzling so I'm not able to find any soloutions. 我不明白为什么这行不通,我不断收到此java.sql.SQLException:在结果集错误开始之前,我在网上看了一下,但是因为我一直盯着电脑屏幕看了好几个小时,我的大脑却发抖了,所以我我找不到任何解决方法 please can you help me?! 请你能帮我吗? thanks 谢谢

String from = "";
String subject= "";
String to= "";
String message= "";
try
{
    while(retrieveMessages().next())
    {
         to = retrieveMessages().getString("tblEmail.to");
         from = retrieveMessages().getString("tblEmail.from");
         subject = retrieveMessages().getString("tblEmail.subject");
         message = retrieveMessages().getString("tblEmail.message");
         MailBox.add(new Email(to, from, subject, message));
    }
}
catch (SQLException e)
{

    e.printStackTrace();
}

You're calling retrieveMessages() multiple times. 您多次调用retrieveMessages() It doesn't help that you haven't shown us what that does, but I suspect you want to call it once and store the result in a local variable. 您没有告诉我们该怎么做是没有帮助的,但是我怀疑您只想调用一次并将结果存储在局部变量中。 At the moment, I suspect you're calling next() on one result set, then getString() on a different result set. 此刻,我怀疑你调用next()一个结果集,然后getString()不同的结果集。 For example: 例如:

try (ResultSet results = retrieveMessages()) {
    while (results.next()) {
        String to = results.getString("tblEmail.to");
        String from = results.getString("tblEmail.from");
        String subject = results.getString("tblEmail.subject");
        String message = results.getString("tblEmail.message");
        MailBox.add(new Email(to, from, subject, message));
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM