Как проверить, существует ли текст, вставленный в editText, в базе данных SQLite, затем вернуть сообщение, если оно существует, и если нет, вернуть другое сообщение - PullRequest
0 голосов
/ 09 января 2020

Я новичок в программировании, я пытаюсь создать приложение, которое создает базу данных SQLite, добавляет таблицу к указанной базе данных, позволяет мне обновлять таблицу и просматривать вставленные в нее данные. затем я хочу проверить, существует ли в базе данных текст (например, имя), который я вставляю в editText, и вернуть сообщение, скажем, «сотрудник существует», если текст найден, и другое сообщение «сотрудник не найден», если имя отсутствует в базе данных.

Мне удалось сделать все, кроме той части, где приложение должно проверять, существует ли имя в БД, и возвращает сообщение. это насколько я получил:

DatabaseHelper выглядит так:

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

import androidx.annotation.Nullable;

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final int dbVersion = 1;
    public static final String DATABASE_NAME="numere_masini.db";
    public static final String TABLE_NAME="tabel_masini";
    public static final String COL_1="ID";
    public static final String COL_2="NUME";
    public static final String COL_3="PRENUME";
    public static final String COL_4="NUMAR_DOSAR";
    public static final String COL_5="COD_ORGANIGRAMA";
    public static final String COL_6="CENTRU_COST";
    public static final String COL_7="NUMAR_AUTO_1";
    public static final String COL_8="NUMAR_AUTO_2";
    public static final String COL_9="NUMAR_AUTO_3";
    SQLiteDatabase db;
    private static final String createTable = "Create Table " + TABLE_NAME + "("
            + COL_1 + " Integer Primary Key AutoIncrement," +
            COL_2 + " Text," +
            COL_3 + " Text," +
            COL_4 + " Text," +
            COL_5 + " Text," +
            COL_6 + " Text," +
            COL_7 + " Text," +
            COL_8 + " Text," +
            COL_9 + " Text" + ");";


    public DatabaseHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null,dbVersion );

    }



    @Override
    public void onCreate(SQLiteDatabase SQLiteDatabase) {
        this.db= SQLiteDatabase;
        db.execSQL(createTable);

    }

    @Override
    public void onUpgrade(SQLiteDatabase SQLiteDatabase, int i, int i1) {
        String query = "DROP TABLE IF EXISTS" + TABLE_NAME;
        db.execSQL(query);
        this.onCreate(db);

    }


    public boolean cautaNumar(){
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.query(TABLE_NAME, new String[]{COL_2}, COL_2+"=?", new String[] {}, null, null, null, "1");
        if (cursor.moveToFirst()) {
            return true; // a row was found
        }
        return false; // no row was found

    }

MainActivity это

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.database.Cursor;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    DatabaseHelper myDb;
    EditText editNume, editPrenume, editNumar_dosar,  editCod_organigrama, editCentru_cost, editNumar_auto_1, editNumar_auto2, editNumar_auto3,editTextId, editCauta;
    Button btnAdaugaNumar;
    Button btnverificaNumar;
    Button btnActualizeazaInformatii;
    Button btnAfiseazaDb;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        myDb=new DatabaseHelper(this);
        editNume= (EditText)findViewById(R.id.editText_nume);
        editPrenume= (EditText)findViewById(R.id.editText_prenume);
        editNumar_dosar= (EditText)findViewById(R.id.editText_numar_dosar);
        editCod_organigrama= (EditText)findViewById(R.id.editText_cod_organigrama);
        editCentru_cost= (EditText)findViewById(R.id.editText_centru_cost);
        editNumar_auto_1= (EditText)findViewById(R.id.editText_numar_auto_1);
        editNumar_auto2= (EditText)findViewById(R.id.editText_numar_auto_2);
        editNumar_auto3= (EditText)findViewById(R.id.editText_numar_auto_3);
        editTextId=(EditText)findViewById(R.id.editText_id) ;
        editCauta=(EditText) findViewById(R.id.editText_cauta);

        btnAdaugaNumar=(Button)findViewById(R.id.button_adauga_angajat);
        btnverificaNumar= (Button) findViewById(R.id.button_verifica_numar);
        btnActualizeazaInformatii=(Button) findViewById(R.id.button_actualizeaza_informatii);
        btnAfiseazaDb=(Button) findViewById((R.id.button_afiseaza_db));
        AddData();
        viewAll();
        UpdateData();
        verificaNumar();
    }

    // i have no idea how ro write this segment
     public void verificaNumar (){

        String cautare= editCauta.getText().toString();
        if(myDb.cautaNumar()) {

            Toast.makeText(MainActivity.this, "employee exist", Toast.LENGTH_LONG).show();
        }
        else{
            Toast.makeText(MainActivity.this,"employee not found", Toast.LENGTH_LONG).show();
        }

    }

Ответы [ 2 ]

0 голосов
/ 09 января 2020

Используйте следующий код:

DatabaseHelper db = new DatabaseHelper(this);
SqliteDatabase sqlite = db.getReadableDatabase();

EditText edit = findViewById(R.id.edit_text_id);
String edit_string = edit.getText().toString();

Cursor cursor = sqLiteDatabase.query(DatabaseHelper.TABLE_NAME, null, DatabaseHelper.COLUMN_TO_MATCH + "=?", new String[] {edit_string}, null, null, null);

if ( cursor.moveToFirst() && cursor!=null && cursor.getCount()>0) {
  Toast.makeText(getApplicationContext(), "Text matches", Toast.LENGTH_LONG).show();
} 

else {
      Toast.makeText(getApplicationContext(), "Text doesnt matches", Toast.LENGTH_LONG).show();
    }
0 голосов
/ 09 января 2020

В классе DatabaseHelper:

public boolean cautaNumar(String name){
        boolean flag = false;
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.query(TABLE_NAME, new String[]{COL_2}, COL_2+"=?", new String[] {}, null, null, null, "1");
        if (cursor.moveToFirst()) {
            if(cursor.getString("name").equalsIgnoreCase(name)) {
                flag = true;
            }
            else {
                flag = false;
            }
        }
        return flag;
    }

В классе MainActivity:

public void verificaNumar (){
            String cautare = editCauta.getText().toString();
            if(myDb.cautaNumar(cautare)) {
                Toast.makeText(MainActivity.this, "employee exist", Toast.LENGTH_LONG).show();
            }
            else{
                Toast.makeText(MainActivity.this,"employee not found", Toast.LENGTH_LONG).show();
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...