2017-05-03 55 views
0

本程序检索数据库中的数据。我需要为我的程序使用一个字符串变量。但是当我将ResultSet字符串值放入字符串变量中并且在运行程序之后显示'java.sql.SQLException: Before start of result set'ResultSet和String变量问题

这里是我的代码:

try{     
// for database connection 

    Class.forName("com.mysql.jdbc.Driver");   
    Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/email_auto_responder","root",""); 

    Statement stmt=con.createStatement(); 
    ResultSet EmailAccounts = stmt.executeQuery("SELECT * FROM `clemailaccounts`"); 

String hostSubtract = EmailAccounts.getString(2).substring(EmailAccounts.getString(2).indexOf("@")); 
String partiallyCompanyName = hostSubtract.replace("@", ""); 
String companyName = partiallyCompanyName.replace(".com", "");   


    while(EmailAccounts.next()) { 

    System.out.println(EmailAccounts.getInt(1)+" "+EmailAccounts.getString(2)+" "+ companyName +" "+EmailAccounts.getString(4)); 
       + "\n"); 
     } 
} 
    catch(Exception e) 
{ System.out.println(e);} 

我在一些例子中看到他们在字符串变量使用的ResultSet值。但我不知道为什么我得到这个错误。 Eclips还有另一件事情,它也没有显示任何错误。但运行代码后,我得到了这个异常。任何帮助将不胜感激。在此先感谢

+4

好的,你在调用'next()'之前调用了'getString()'*。你不能那样做。 (我也强烈建议你开始遵循普通的Java命名约定,并且你更易于格式化你的代码。) –

+0

感谢你的帮助 –

回答

1

您的光标位于第一行之前,然后您正在请求数据。您需要将光标移至第一行。先做EmailAccounts.next()然后得到字符串

+0

谢谢。我知道了 –