我有一个应用程序,其中我只需要输入一次数据。我确实找到了解决方案并应用了它,但是仍然再次插入了相同的数据记录。
我的代码如下:
在SqliteHelper类(插入方法)中:
public boolean insertData(ContactModel contactModel) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(col_0,contactModel.getId());
contentValues.put(col_1,contactModel.getName());
contentValues.put(col_2,contactModel.getNumber());
contentValues.put(col_3,contactModel.getColor());
contentValues.put(col_4,contactModel.getFSize());
// long result =db.insert(Table_name,null,contentValues);
long result = db.insertWithOnConflict(Table_name, null, contentValues,SQLiteDatabase.CONFLICT_REPLACE);
if(result == -1){
return false;
}else{
return true;
}
}
活动中用于插入数据的方法:
public void DataAdd(String name,String num,int color,int size){
boolean indata = myhelper.insertData(new ContactModel(name,num,color,size));
if (indata == true) {
Toast.makeText(getApplicationContext(),"DataSave",Toast.LENGTH_SHORT).show();
}
else{
Toast.makeText(getApplicationContext(),"In Data not True",Toast.LENGTH_SHORT).show();
}
}
定格表:
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE "+ Table_name +"(Id INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, NUMBER TEXT, COLOR INTEGER, FSIZE INTEGER) ");
}
答案 0 :(得分:0)
当定义表必须使用主键作为id时:
private static final String DB_CREATE_MY_TABLE = "CREATE TABLE " + TABLE_NAME + " ( " +
" id INTEGER PRIMARY KEY ," +
" xofId INTEGER NULL," +
" code INTEGER NULL" +
");";
如果您想增加ID的自动使用量,请按以下步骤操作:
id INTEGER PRIMARY KEY AUTOINCREMENT,