Не удалось предотвратить вставку тех же данных в Sqlite. - PullRequest
0 голосов
/ 04 марта 2019

У меня есть приложение, в котором мне нужна одна запись данных только один раз.Я выполнил поиск решения и применил его, но снова вставил ту же запись данных.

Мой код выглядит следующим образом:

В классе SqliteHelper (метод Insert):

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

метод в действии для вставки данных:

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

    }

1 Ответ

0 голосов
/ 04 марта 2019

когда таблица определения должна использовать первичный ключ для идентификатора:

  private static final String DB_CREATE_MY_TABLE = "CREATE TABLE " + TABLE_NAME + " ( " +
        "  id        INTEGER  PRIMARY KEY ," +
        "  xofId     INTEGER  NULL," +
        "  code      INTEGER  NULL" +
        ");";

, если вы хотите увеличить идентификатор автоматического использования:

id INTEGER PRIMARY KEY   AUTOINCREMENT,
...