2013-05-06 162 views
0

我正在用Eclipse開發一個應用程序。我想檢查這些值是否已經插入到數據庫中,或者不是爲了防止再次插入。如果該值未插入,然後我想用mySQLiteAdapter.insert();方法來填充數據庫記錄,就像這樣:如何檢查數據庫中是否存在記錄或不在sqlite中?

  mySQLiteAdapter.insert("1"); 
      mySQLiteAdapter.insert("apel"); 
      mySQLiteAdapter.insert("Peal"); 
      mySQLiteAdapter.insert("the competitor of samsung"); 
      mySQLiteAdapter.insert("0"); 
      mySQLiteAdapter.insert("1"); 

如何檢查是否值已被插入或不?

+4

使您的列具有唯一性,如果您嘗試添加相同的值,數據庫將引發異常。 – 2013-05-06 14:40:36

回答

0

首先讓你的ID唯一,並使用類似於此:

String sql = "SELECT 1 FROM artist WHERE id=?"; 
Cursor cursor = mDbHelper.executeSQLQuery(sql, new String[] { Integer.toString(id) }); 
if (cursor != null) { 
      ContentValues artists = new ContentValues(); 
    if (cursor.getCount() == 0) { 
     artists.put("id", id); 
     artists.put("artist_name", artist_name); 
     mDbHelper.insert("artist", null, artists); 
     artists.clear(); 
    } 
    cursor.close(); 
} 

當然這取決於你的數據庫的Helper類的功能,你使用它的方式會有所不同。整個想法只是檢查是否有一個具有該ID的記錄,如果遊標數返回0,這意味着沒有該ID的記錄。

第二種方法是使用REPLACE聲明:mDbHElper.replace("artist", null, artists);。如果沒有給定的主鍵,它將插入記錄。如果已經有記錄,它會更新它。

希望這個答案給你點如何實現這一點和你可以使用的東西。

相關問題