【发布时间】:2019-03-04 07:32:21
【问题描述】:
我有一个应用程序,其中我只需要一次数据输入。我确实搜索了解决方案并应用了它,但仍然再次插入相同的数据记录。
我的代码如下:
在 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;
}
}
activity中插入数据的方法:
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) ");
}
【问题讨论】:
-
你为什么不用那个表的主键?
-
我正在使用它,你现在可以看到,我编辑帖子
-
卸载应用并重新安装应用并重试
-
@vasudev 还是一样,如果你有任何其他方法可以达到相同的结果,请告诉我
-
删除此内容Values.put(col_0,contactModel.getId());卸载应用并运行应用
标签: android database android-sqlite