我使用SQLiteDatabase
和我有一個奇怪的問題 - 當我嘗試SELECT * FROM
表它給了我這樣的:的Android工作室SQL找不到表
no such table: test_table (code 1): , while compiling: SELECT * FROM test_table
但是當我插入到同一個表,沒有發送Exception
。 這是我的代碼:
,但未通過表中的所有數據採集方法:
public List<Test> GetAllTests()
{
List<Test> tests =new ArrayList<Test>();
SQLiteDatabase db = this.getReadableDatabase();
String sql = "SELECT * FROM " + TEST_TABLE;
Cursor cursor = db.rawQuery(sql,null);
if(cursor.moveToFirst())
{
do
{
Test test = new Test();
test.setId(cursor.getInt(cursor.getColumnIndex(KEY_ID)));
test.setSubjectID(cursor.getInt(cursor.getColumnIndex(KEY_SUBJECT_ID)));
String dateString = cursor.getString(cursor.getColumnIndex(KEY_TEST_DATE));
DateFormat format = new SimpleDateFormat("MMMM d, yyyy", Locale.ENGLISH);
Date date = null;
try {
date = format.parse(dateString);
} catch (ParseException e) {
e.printStackTrace();
}
test.setDate(date);
test.setGrade(cursor.getDouble(cursor.getColumnIndex(KEY_TEST_GRADE)));
tests.add(test);
}while(cursor.moveToNext());
}
return tests;
}
是將數據插入到同一個表的方法(無例外):
public long InsertTest(Test test)
{
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_SUBJECT_ID,test.getSubjectID());
values.put(KEY_TEST_DATE,test.getDate().toString());
return db.insert(TEST_TABLE,null,values);
}
的代碼插入並獲取數據:
Test test = new Test(testSubjectID.getSelectedItemPosition(),date);
AddTestToList(test);
try {
dbManager.InsertTest(test);
List<Test> tests = dbManager.GetAllTests();
for (Test test:tests)
{
AddTestToList(test);
}
}catch (Exception e){Log.d("MSG_ERROR",e.toString());}
卸載應用程序,並重新安裝 –
問題解決了:) –
卸載並安裝回去? –