Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.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
Android 不从Sqlite数据库表获取数据_Android_Sqlite - Fatal编程技术网

Android 不从Sqlite数据库表获取数据

Android 不从Sqlite数据库表获取数据,android,sqlite,Android,Sqlite,我正在开发android应用程序,希望从Sqlite数据库表中获取数据 即使数据出现在表格中,也会给我带来错误 代码: 日志: 09-17 11:51:57.904: W/System.err(19441): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1 09-17 11:51:57.904: W/System.err(19441): at android.dat

我正在开发android应用程序,希望从Sqlite数据库表中获取数据

即使数据出现在表格中,也会给我带来错误

代码:

日志:

09-17 11:51:57.904: W/System.err(19441): android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
09-17 11:51:57.904: W/System.err(19441):    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:580)
09-17 11:51:57.904: W/System.err(19441):    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214)
09-17 11:51:57.914: W/System.err(19441):    at android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:41)
09-17 11:51:57.924: W/System.err(19441):    at com.example.busahebaapp.MikatHandler.getAllMikats(MikatHandler.java:113)
09-17 11:51:57.924: W/System.err(19441):    at com.example.busahebaapp.ViewEvents.onCreate(ViewEvents.java:57)
09-17 11:51:57.934: W/System.err(19441):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-17 11:51:57.944: W/System.err(19441):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
09-17 11:51:57.944: W/System.err(19441):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-17 11:51:57.944: W/System.err(19441):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-17 11:51:57.954: W/System.err(19441):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-17 11:51:57.964: W/System.err(19441):    at android.os.Handler.dispatchMessage(Handler.java:99)
09-17 11:51:57.974: W/System.err(19441):    at android.os.Looper.loop(Looper.java:123)
09-17 11:51:57.974: W/System.err(19441):    at android.app.ActivityThread.main(ActivityThread.java:3683)
09-17 11:51:57.984: W/System.err(19441):    at java.lang.reflect.Method.invokeNative(Native Method)
09-17 11:51:57.994: W/System.err(19441):    at java.lang.reflect.Method.invoke(Method.java:507)
09-17 11:51:57.994: W/System.err(19441):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-17 11:51:58.004: W/System.err(19441):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-17 11:51:58.004: W/System.err(19441):    at dalvik.system.NativeStart.main(Native Method)
09-17 11:53:24.805: W/jdwp(19441): Debugger is telling the VM to exit with code=1
请帮助我,我不理解错误的原因

我已确保表中有数据

只需更改以下内容:

if (rows>0) {

cursor.moveToFirst();

do{

 // get data here from database...

}while(cursor.moveToNext());

}
而且,当光标第一次移动到第一个位置时,它不为null且其计数必须大于0。。并且该值必须从0开始,而不是从1开始。。。所以改变

int mid=cursor.getInt(0);

数据库中只有一个值,所以将其作为0索引而不是1读取,光标从0开始。 使用cursor.moveTofirst()


为什么要注释//cursor.moveToFirst()?我的逻辑错误。您应该检查(cursor!=null&&cursor.moveToFirst())。。。do{}while()@Tarun thanx先生…每次当我需要获取值时,我都应该写这个?+1,以确定您可以在桌面上处理SQLite数据库。很多人都不这么认为。每次当我想获取值时,我都应该将其设置为ursor.moveTofirst()???每次我想要获取值时,我都应该将其设置为ursor.moveTofirst()???无论何时从数据库获取数据,都要在do while循环之前调用cursor.moveToFirst(),其计数必须大于0@ShrimantBajiraoPeshawe-我想这取决于你想做什么。moveToFirst(),呃,移动到第一行。
if (rows>0) {

cursor.moveToFirst();

do{

 // get data here from database...

}while(cursor.moveToNext());

}
int mid=cursor.getInt(0);
int mid=cursor.getInt(0);