我想成功插入数据
这是我的代码:
public void insertData(String strTableName,
ArrayList<HashMap<String, String>> arrListproductdatabase) {
db = this.getWritableDatabase();
ContentValues cv = new ContentValues();
for (int i = 0; i < arrListproductdatabase.size(); i++) {
// cv.put(columnName, arrListOfRecord.get(i).get("name"));
cv.put(columnproductname,
arrListproductdatabase.get(i).get("product"));
cv.put(columnproductprice,
arrListproductdatabase.get(i).get("price"));
cv.put(columnproductquantity,
arrListproductdatabase.get(i).get("quantity"));
cv.put(columnproductid,
arrListproductdatabase.get(i).get("productID"));
cv.put(columnresturantID,
arrListproductdatabase.get(i).get("resturantID"));
db.insert(strTableName, null, cv);
}
我想要当我必须再次按下添加按钮时,那个时候它应该检查产品是否已经插入,并且在那种情况下它应该更新并且全部。
我不想创建任何重复的值。
任何帮助将不胜感激!
答案 0 :(得分:0)
您可以检查数据库中的不同值。请点击链接了解更多详情
android check duplicate values before inserting data into database
答案 1 :(得分:0)
将“产品”字段设置为唯一键。因此,当重复值从标准insert
到达时,它将只返回-1并且将吞下错误消息。
您可以使用insertWithOnConflict (String table, String nullColumnHack, ContentValues initialValues, int conflictAlgorithm)
来控制行为,您还可以指定可以具有值的冲突算法:
CONFLICT_ABORT
CONFLICT_FAIL
CONFLICT_IGNORE
CONFLICT_REPLACE
CONFLICT_ROLLBACK
查看conflict resolution types的描述参考。
还有updateWithOnConflict
答案 2 :(得分:-1)
你可以这样做:
public boolean checkProduct(String product){
// shold open database here
Cursor mCursor =
db.query(true, DATABASE_TABLE, null, "product='" + product+"'", null, null, null, null, null);
if(mCursor != null){
mCursor.close();
// shold close database here
return true;
}
// shold close database first here also
return false;
}
希望这有助于你。