簡體   English   中英

如何從 Android SQLite 中的數據庫中檢索數據?

[英]How to retrieve data from Database in Android SQLite?

我想從“名稱”中查詢數據,我該怎么做? 我嘗試但似乎我只需要通過主鍵進行咨詢,我是 java 的新手,我正在開始,我不知道通過“名詞”搜索的方法是什么(英文名稱)

public class AdminSQLiteOpenHelper extends SQLiteOpenHelper {
    public AdminSQLiteOpenHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
        super(context, name, factory, version);
    }

    @Override
    public void onCreate(SQLiteDatabase BaseDeDatos) {
        BaseDeDatos.execSQL("CREATE TABLE personajes (codigo text primary key, nombres text, contraseña text)");
    }

    @Override
    public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

    }
}

當我在“ codigo ”中注冊一個數字然后查詢它正確返回數據,但是當我用文本示例注冊時:“ asdasd ”控制台返回: E / SQLiteLog: (1) no such column: asdasd

查詢方法:

    private EditText et_codigo, et_nombres, et_contraseña;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_agregarpersonaje);


et_codigo = (EditText)findViewById(R.id.txt_codigo);
et_nombres = (EditText)findViewById(R.id.txt_nombres);
et_contraseña = (EditText)findViewById(R.id.txt_contraseña);

}



    public void Buscar(View view){
    AdminSQLiteOpenHelper admin = new AdminSQLiteOpenHelper(this, "administracion", null, 1);
    SQLiteDatabase BaseDeDatabase = admin.getWritableDatabase();

    String codigo = et_codigo.getText().toString();


    if(!codigo.isEmpty()){
        Cursor fila = BaseDeDatabase.rawQuery
                ("select nombres, contraseña from personajes where codigo =" + codigo, null);



        if(fila.moveToFirst()){
            et_nombres.setText(fila.getString(0));
            et_contraseña.setText(fila.getString(1));
            BaseDeDatabase.close();
        } else {
            Toast.makeText(this,"No existe el artículo", Toast.LENGTH_SHORT).show();
            BaseDeDatabase.close();
        }

    } else {
        Toast.makeText(this, "Debes introducir el código del artículo", Toast.LENGTH_SHORT).show();
    }
}

您可以使用 Room 數據庫。 它在SQLite之上提供了一個抽象層,使用起來更方便。

https://developer.android.com/topic/libraries/architecture/room

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM