2011-09-06 77 views
0

我是android新手。 在我的應用程序中,我使用了四個類。加載頁面,菜單類,報警設置類和數據庫類。當我點擊加載頁面中的按鈕時,它進入菜單類,並在菜單類中點擊報警設置選項,它進入報警設置類。設置報警後,它將數據保存在數據庫中。而且我想將菜單類中的數據顯示爲列表視圖,因此我再次打開菜單類中的數據庫並使用光標獲取數據,並以列表視圖顯示,創建數據庫後,如何知道表是否退出?

但是我的問題是當用戶第一次啓動應用程序時,他在加載頁面中點擊一個按鈕,他必須去菜單類,但在那個時候會出現錯誤。因爲在菜單類中,我打開數據庫,但表格不是there.i在鬧鐘設置類中創建表。因此,如果沒有表格,它將無法處理光標。 所以我想知道的是創建數據庫後表是退出還是不退出。 我的代碼是用於創建數據庫

alarmDB = this.openOrCreateDatabase(CRAZY_ALARM_DB_NAME, MODE_PRIVATE, null); 
+0

當您創建數據庫時,你應該創建所有必要的表。 – Ian

回答

0

另一種方法是使用try/catch。這將從錯誤/崩潰停止,並且您可以在發生異常時設置選項。

 try 
     { 
      alarmDB = this.openOrCreateDatabase(CRAZY_ALARM_DB_NAME, MODE_PRIVATE, null); 
     } 
     catch(Exception e) 
     { 
      Log.v("Hello","Exception trying to open database:" + e.toString()); 
     } 

而對於表格,它將是相同的。像:

final String CREATE_TABLE_USER = 
     "CREATE TABLE tbl_user (" 
     + "id INTEGER," 
     + "name TEXT," 
     + "email TEXT," 
     + "password TEXT," 
     + "terms TEXT);"; 

try 
{ 
    db.execSQL(CREATE_TABLE_USER); 
} 
catch (Exception e) 
{ 
    Log.v("Hello","Exception trying to create table:" + e.toString()); 
} 

如果你希望所有表的列表,那麼你可以檢查一個類似的問題在這裏:Retrieve a list of all tables in the database

+0

嗨,這個代碼是用於我知道數據庫是否打開或沒有。我的疑問是打開數據庫後,我想知道是數據庫包含任何表或不是? – user903704

+0

檢查編輯。我希望有所幫助。 – skaneria

0

您可以檢查是否有表下面的SQL語句存在:

SELECT name FROM sqlite_master WHERE type='table' AND name='table_name'; 

如果得到的指針爲空或空,那麼你的表不存在。

相關問題