Как поставить валидацию, чтобы проверить, есть ли у нее данные или нет? андроид студия с sqlite - PullRequest
0 голосов
/ 12 сентября 2018

Мне интересно, как поставить валидацию, чтобы проверить, есть ли «столбец базы данных1», тогда что бы я ни печатал и сохранял.Вместо создания нового «Столбца 2» он будет заменен на «Обновление».

Вот код

sB_Save.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


            SettingModel txn = new SettingModel();  // initialize your model class first
            txn.setH1(h1.getText().toString());
            txn.setH2(h2.getText().toString());
            txn.setH3(h3.getText().toString());
            txn.setH4(h4.getText().toString());
            txn.setPerson_Charge(Person_Charge.getText().toString());
            txn.setUnit_Code(unit_Code.getText().toString());
            try {
                SQLiteDatabase db = dbHelper.getWritableDatabase();
                ContentValues cv = new ContentValues();
                cv.put("header1", txn.getH1());  // get the entered name here.
                cv.put("header2", txn.getH2());
                cv.put("header3", txn.getH3());
                cv.put("header4", txn.getH4());
                cv.put("unitcode", txn.getUnit_Code());
                cv.put("personInCharge", txn.getPerson_Charge());
                db.insert("Information", null, cv);
                db.close();
                Toast.makeText(Setting_Page.this, "Add successfully", Toast.LENGTH_SHORT).show();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

Требуется «утверждение», но яне знаю, как поставить проверку для проверки ... Пожалуйста, помогите.Заранее спасибо

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете использовать следующее.

    public void onClick(View v) {
        SettingModel txn = new SettingModel();  // initialize your model class first
        txn.setH1(h1.getText().toString());
        txn.setH2(h2.getText().toString());
        txn.setH3(h3.getText().toString());
        txn.setH4(h4.getText().toString());
        txn.setPerson_Charge(Person_Charge.getText().toString());
        txn.setUnit_Code(unit_Code.getText().toString());
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        Cursor csr = db.query("Information",null,null,null,null,null,null);
        int rowcount = csr.getCount();
        csr.close();
        ContentValues cv = new ContentValues();
        cv.put("header1", txn.getH1());  // get the entered name here.
        cv.put("header2", txn.getH2());
        cv.put("header3", txn.getH3());
        cv.put("header4", txn.getH4());
        cv.put("unitcode", txn.getUnit_Code());
        cv.put("personInCharge", txn.getPerson_Charge());
        if (rowcount == 0) {
            db.insert("Information", null, cv);
            Toast.makeText(Setting_Page.this, "Add successfully", Toast.LENGTH_SHORT).show();
        } else {
            db.update("Information",cv,null,null);
            Toast.makeText(Setting_Page.this, "Updated successfully", Toast.LENGTH_SHORT).show();
        }
        db.close();
    }
  • Обратите внимание, что вышеприведенный код является принципиальным и не был проверен, поэтому может содержать ошибки.

Альтернативный метод (возможно, кто-то скажет правильный метод) состоит в том, чтобы создать УНИКАЛЬНОЕ (индексное) ограничение для столбца или столбцов, а затем использовать insertWithonConflict с CONFLICT_REPLACE (это эквивалент SQL INSERT OR REPLACE .......).

...