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使用するinsertWithOnConflictと、はるかに簡単になります。SQLiteDatabase.CONFLICT_IGNORE

于 2013-03-26T05:40:57.467 に答える