Я создаю приложение, в котором люди дают оценки другим людям. Для этого я хочу вставить имена некоторых людей (скажем, 5) в базу данных во время установки приложения. Теперь, когда я запускаю приложение в первый раз, все идет хорошо. Но когда я запускаю его во второй раз, данные вставляются снова, делая его 10, т. Е. Дублируют данные. Проблема заключается в том, что всякий раз, когда я запускаю это действие, он добавляет данные. Каково решение этой проблемы? Вот мой код:Повторяющаяся проблема с данными android sqlite
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public class GamePlay extends ActionBarActivity {
//Some code-----------
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.gameplay);
//Some code----
db=openOrCreateDatabase("MyGameData", MODE_PRIVATE, null);
try{
db.execSQL("create table teachers(_id integer primary key autoincrement , name varchar(30) , gender varchar(2) , score integer)");
Toast.makeText(this, "Table created", Toast.LENGTH_SHORT).show();
}
catch(Exception e){
Toast.makeText(this, "Exception 1", Toast.LENGTH_SHORT).show();
Log.i("Create table", e.getMessage());
}
// Insert values in table-------
String str_name[]={"arun", "dhanraj", "decoder", "sanjana"};
String str_gender[]={"m", "m", "m", "f"};
ContentValues cv = new ContentValues();
for(int i=0; i<str_name.length; i++){
cv.put("name", str_name[i]);
cv.put("gender", str_gender[i]);
db.insert("teachers", null, cv);
}
//Some code------
Обязательно. Вы должны ** ОБНОВИТЬ ** существующие данные, если они уже присутствуют. Вы только ** INSERT ** записываете новые записи, дублируя информацию в своем db. –
@DerGolem: Я хочу вставить новые данные во время установки. Сначала данных нет. Вот почему я использую INSERT. Обновление - это еще один процесс. Итак, как мне вставлять имена и пол? – Decoder
Я бы сделал еще один запрос, чтобы узнать, существует ли пользователь, затем сделайте то, что говорит Der Golem, и обновите данные. –