Android 从Sqlite读取行时,应用程序停止
我可以在SQlite数据库中插入行,但当我尝试从SQlite检索行时,我的应用程序停止工作。这是密码Android 从Sqlite读取行时,应用程序停止,android,sqlite,Android,Sqlite,我可以在SQlite数据库中插入行,但当我尝试从SQlite检索行时,我的应用程序停止工作。这是密码 String model; public String getDataFromDB(){ SQLiteDatabase db = dbHelper.getReadableDatabase(); Cursor cursor = db.query(Announcement.TABLE, new String[] {Announcement.KEY_Annou
String model;
public String getDataFromDB(){
SQLiteDatabase db = dbHelper.getReadableDatabase();
Cursor cursor = db.query(Announcement.TABLE, new String[] {Announcement.KEY_Announcement}
, Announcement.KEY_Announcement,
null, null, null, null, null);
if (cursor.moveToFirst()){
model = cursor.getString(cursor.getColumnIndex(Announcement.KEY_Announcement));
}
return model;
}
有人能说出真正的问题在哪里吗
编辑:我从android监视器复制的文本,
最后我发现了一个例外,就是这里
00-09 03:52:12.610 335-335/com.example.anum.lmslite E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.anum.lmslite/com.example.anum.lmslite.Announcement_Activities.CS101_Announcement}: android.database.sqlite.SQLiteException: no such table: Announcement (code 1): , while compiling: SELECT * FROM Announcement
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
at android.app.ActivityThread.access$600(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5392)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.database.sqlite.SQLiteException: no such table: Announcement (code 1): , while compiling: SELECT * FROM Announcement
at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:886)
at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:497)
at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:37)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
at com.example.anum.lmslite.StudentRepo.getDataFromDB(StudentRepo.java:91)
at com.example.anum.lmslite.Announcement_Activities.CS101_Announcement.onCreate(CS101_Announcement.java:46)
at android.app.Activity.performCreate(Activity.java:5122)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1084)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
at android.app.ActivityThread.access$600(ActivityThread.java:162)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:194)
at android.app.ActivityThread.main(ActivityThread.java:5392)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
at dalvik.system.NativeStart.main(Native Method)
00-09 03:52:12.610 335-335/com.example.anum.lmslite E/AndroidRuntime:FATAL EXCEPTION:main
java.lang.RuntimeException:无法启动活动组件信息{com.example.anum.lmslite/com.example.anum.lmslite.Announcement\u Activities.CS101\u Announcement}:android.database.sqlite.SQLiteException:没有这样的表:Announcement(代码1):,编译时:SELECT*FROM Announcement
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2343)
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
在android.app.ActivityThread.access$600(ActivityThread.java:162)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
位于android.os.Handler.dispatchMessage(Handler.java:107)
位于android.os.Looper.loop(Looper.java:194)
位于android.app.ActivityThread.main(ActivityThread.java:5392)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:838)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:605)
在dalvik.system.NativeStart.main(本机方法)
原因:android.database.sqlite.SQLiteException:无此表:公告(代码1):,编译时:从公告中选择*
位于android.database.sqlite.SQLiteConnection.nativePrepareStatement(本机方法)
位于android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:886)
位于android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:497)
位于android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
位于android.database.sqlite.SQLiteQuery(SQLiteQuery.java:37)
位于android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
位于android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
位于android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
位于com.example.anum.lmslite.StudentRepo.getDataFromDB(StudentRepo.java:91)
位于com.example.anum.lmslite.Announcement\u Activities.CS101\u Announcement.onCreate(CS101\u Announcement.java:46)
位于android.app.Activity.performCreate(Activity.java:5122)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1084)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2307)
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395)
在android.app.ActivityThread.access$600(ActivityThread.java:162)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1364)
位于android.os.Handler.dispatchMessage(Handler.java:107)
位于android.os.Looper.loop(Looper.java:194)
位于android.app.ActivityThread.main(ActivityThread.java:5392)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:525)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.r上
@Override
public void onCreate(SQLiteDatabase db) {
// Your code goes here to create a table Announcement
db.execSQL("CREATE TABLE IF NOT EXISTS Announcement ("
+ "_id INTEGER PRIMARY KEY AUTOINCREMENT "
+ " COLUMN_ONE TEXT, "
+ " COLUMN_TWO TEXT)"
);
}