-1

我要成功插入数据

这是我的代码:

 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);

        }

我希望当我必须再次按下添加按钮时,它应该检查产品是否已经插入,并且在这种情况下它应该更新和所有。

我不想创建任何重复的值。

任何帮助,将不胜感激!

4

3 回答 3

0

您可以检查数据库中的不同值。请点击链接了解更多详情

android在将数据插入数据库之前检查重复值

于 2013-03-14T11:45:17.053 回答
0

将“产品”字段设置为唯一键。因此,当重复值从标准到达时insert,它将简单地返回 -1 并且错误消息将被吞没。

您可以通过使用insertWithOnConflict (String table, String nullColumnHack, ContentValues initialValues, int conflictAlgorithm)where 您还指定可以是值的冲突算法来控制行为:

CONFLICT_ABORT
CONFLICT_FAIL
CONFLICT_IGNORE
CONFLICT_REPLACE
CONFLICT_ROLLBACK

查看有关冲突解决类型的描述的参考。

还有一个updateWithOnConflict

于 2013-03-14T11:47:50.900 回答
-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;
    }

希望这对您有所帮助。

于 2013-03-14T11:50:47.450 回答