0
    String new_recorded_lastname="a lastname";
    ////record to database......
    Cursor cursor = db.rawQuery("SELECT lastname FROM people; ",null);

     if (cursor != null){
  while(cursor.moveToNext()){

    String recorded_lastname=cursor.getString(cursor.getColumnIndex("lastname"));
    if(!(recorded_lastname.equals(new_recorded_lastname))){ 
    //add new_recorded_lastname to database
    break;
    }
    }
    }

我只想在我的数据库中有一个姓氏。即使我使用“if(!(recorded_lastname.equals(new_recorded_lastname)))”检查此行代码,它也会一次又一次地添加相同的记录。如何控制姓氏只添加一次?

//它适用于第一条记录非常好,但是从第二条记录开始,它会一次又一次地添加一些姓氏......

4

1 回答 1

4

在我看来,您正在检查数据库中的每条记录,一旦找到不包含给定姓氏的记录,您就将记录添加到数据库中。您应该累积检查结果,如下所示:

boolean lastnamePresent = false;
while(cursor.moveToNext()){
    String recorded_lastname=cursor.getString(cursor.getColumnIndex("lastname"));
    if(recorded_lastname.equals(new_recorded_lastname)){ 
        lastnamePresent = true;
        break;
    }
}

if(!lastnamePresent)
    // add new_record_lastname to database

虽然如果你使用 SQLite 工具来处理这种东西肯定会更好。就像将列设置为UNIQUE.

于 2012-05-18T19:18:05.073 回答