有兩種方法,
第一種方法是:不需要知道表是否存在,在創建表的時候加上if not exists 例:create table if not exists myTable(...) ,這樣做的好處是,不需要知道表是否存在,只要每次都進行創建即可。因為裡面有判斷,如果表存在的時候,再執行這句不會發生重複創建表的情況。
第二種方法是:直接執行某個SQL語句,用try...catch來捕獲數據庫操作的異常。當異常表示數據庫表不存在的時候,再進行處理。例:
try{
Cursor c = getWritableDatabase().query("select * from myTable",null );
catch(Exception e) // 或者是 SQLiteException .
{//添加處理代碼,例如:創建表。
}
第二種的方法不如第一種好,原因是:第二種寫起來比較麻煩,還有,如果有其它異常的時候,需要對異常來進行判別,並處理。
PS:
上面的E文中有一種方法是判斷query的返回值 ,那個別想了,我在測試的時候,如果表被刪除了,一到那裡就崩潰,只能通過try...catch的方法。
沒有留言:
張貼留言