[英]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.