我有以下代码:
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);
...
}