2013-05-06 157 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);。如果没有给定的主键,它将插入记录。如果已经有记录,它会更新它。

希望这个答案给你点如何实现这一点和你可以使用的东西。

相关问题