2

我有一种插入数据并检查代码何时存在的方法

如果存在不创建插入,如果不存在将创建插入

但是当我尝试运行数据时无法插入数据库

这是我的插入代码

public void processAddA(DialogWrapper wrapper)
               {
           ContentValues values = new ContentValues(2);

            values.put(DatabaseHelper.CODE, wrapper.getCode());
            values.put(DatabaseHelper.ALAMAT, wrapper.getAlamat());
            values.put(DatabaseHelper.BATAS, wrapper.getBatas());
            values.put(DatabaseHelper.LAT, wrapper.getLat());
            values.put(DatabaseHelper.LON, wrapper.getLon());
            values.put(DatabaseHelper.LUAS, wrapper.getLuas());
            values.put(DatabaseHelper.TANGGAL_AWAL, wrapper.getTglA());
            values.put(DatabaseHelper.TANGGAL_AKHIR, wrapper.getTglB());
            values.put(DatabaseHelper.USER_ID, wrapper.getUser());
            values.put(DatabaseHelper.SENT, "0");

                  open();
                  //check if value exist or not.
                  Cursor c = database.rawQuery("SELECT * FROM petak_tetap where code='"
                            + wrapper.getCode() + "'", null);
                  if(c == null)
                  {
                  //doesn't exists therefore insert record.
                      database.insert("petak_tetap", DatabaseHelper.ALAMAT,
                                values);
                  }
                  close();
               }

如何解决?

4

2 回答 2

7

使用这个条件它会起作用

if (c!=null && c.getCount()==0)
于 2013-03-26T05:03:49.390 回答
2

那么首先 c 永远不会为 null 你应该使用

if (!c.moveToFirst())

但是,如果您将代码列声明为UNIQUE,然后将insertWithOnConflictwithSQLiteDatabase.CONFLICT_IGNORE作为最后一个参数使用,则会容易得多。

于 2013-03-26T05:40:57.467 回答