Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Android SQLite中从数据库检索数据?_Java_Android - Fatal编程技术网

Java 如何在Android SQLite中从数据库检索数据?

Java 如何在Android SQLite中从数据库检索数据?,java,android,Java,Android,我想从“名称”中查询数据,我该怎么做? 我尝试过,但似乎我只需要通过主键进行查询,我对java完全陌生,我正在开始,我不知道通过“nombres”(英文名称)搜索的方法是什么 当我在“codigo”中注册一个数字并进行查询时,它会正确返回数据,但当我注册文本示例“asdasd”时,控制台会返回:E/SQLiteLog:(1)没有这样的列:asdasd 查询方法: private EditText et_codigo, et_nombres, et_contraseña; @Overrid

我想从“名称”中查询数据,我该怎么做? 我尝试过,但似乎我只需要通过主键进行查询,我对java完全陌生,我正在开始,我不知道通过“nombres”(英文名称)搜索的方法是什么

当我在“codigo”中注册一个数字并进行查询时,它会正确返回数据,但当我注册文本示例“
asdasd
”时,控制台会返回:
E/SQLiteLog:(1)没有这样的列: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();
    }
}

您可以使用房间数据库。它在SQLite上提供了一个抽象层,并且更易于使用


听起来您需要一个新的解决方案。堆栈溢出不是寻找此类基本信息的好地方,特别是考虑到您需要的内容不能在几段的篇幅中涵盖。有很多网站和书籍涵盖了你需要的材料。我不能理解,我的方法没有任何解决方案吗?
    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();
    }
}