我有以下代码:

try {


                    String sql="select username from UserMaster";
                    statement = conn.createStatement();
                    resultSet = statement.executeQuery(sql);


                    int value=resultSet.getInt(1);


                    if (value > 0) {
                        recFound = 1;
                    } else {
                        recFound = 0;
                    }
                    if (recFound > 0) {
                        return true;
                    } else {
                        return false;
                    }
                }
                catch (Exception e)
                {
                    e.printStackTrace();
                    return false;
                }


此代码用于检查用户是否存在。

但是由于记录集不包含任何值而出现错误。

我的数据库有价值。我还测试了连接。

代码也成功地建立了与Databse的连接。

但是不理解为什么它不能从表中获取值。

以下是logcat:

09-11 13:39:30.126: W/KeyCharacterMap(1625): No keyboard for id 0
09-11 13:39:30.126: W/KeyCharacterMap(1625): Using default keymap: /system/usr/keychars/qwerty.kcm.bin
09-11 13:39:38.967: W/System.err(1625): java.sql.SQLException: No current row in the ResultSet.
09-11 13:39:38.967: W/System.err(1625):     at net.sourceforge.jtds.jdbc.JtdsResultSet.getColumn(JtdsResultSet.java:270)
09-11 13:39:38.967: W/System.err(1625):     at net.sourceforge.jtds.jdbc.JtdsResultSet.getInt(JtdsResultSet.java:641)
09-11 13:39:38.976: W/System.err(1625):     at com.example.messagesql.gaSQLConnect.CheckUser(gaSQLConnect.java:69)
09-11 13:39:38.976: W/System.err(1625):     at com.example.messagesql.Login$1.onClick(Login.java:38)
09-11 13:39:38.976: W/System.err(1625):     at android.view.View.performClick(View.java:2485)
09-11 13:39:38.976: W/System.err(1625):     at android.view.View$PerformClick.run(View.java:9080)
09-11 13:39:38.986: W/System.err(1625):     at android.os.Handler.handleCallback(Handler.java:587)
09-11 13:39:38.986: W/System.err(1625):     at android.os.Handler.dispatchMessage(Handler.java:92)
09-11 13:39:38.986: W/System.err(1625):     at android.os.Looper.loop(Looper.java:123)
09-11 13:39:38.986: W/System.err(1625):     at android.app.ActivityThread.main(ActivityThread.java:3683)
09-11 13:39:38.986: W/System.err(1625):     at java.lang.reflect.Method.invokeNative(Native Method)
09-11 13:39:38.986: W/System.err(1625):     at java.lang.reflect.Method.invoke(Method.java:507)
09-11 13:39:38.986: W/System.err(1625):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-11 13:39:38.986: W/System.err(1625):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-11 13:39:38.986: W/System.err(1625):     at dalvik.system.NativeStart.main(Native Method)

最佳答案

在尝试调用getter方法之前,将光标移过记录集

if (resultSet.next()) {
   int value=resultSet.getInt(1);
   ...
}

10-04 19:10