Java 我需要在sqlite中进行搜索,并使用新参数部署相同的数据

Java 我需要在sqlite中进行搜索,并使用新参数部署相同的数据,java,android,database,sqlite,android-sqlite,Java,Android,Database,Sqlite,Android Sqlite,我有一个包含各种用户姓名和个人代码(RFC)的数据库。 我需要在两个表(name和RFC)中进行搜索,引入一个新参数,比较并部署一个具有相同名称或相同代码(RFC)的列表 但我的程序只部署具有相同名称或代码(RFC)的第一条记录。 如果有多个同名用户,我需要部署所有用户,而不仅仅是找到的第一个用户 listUser=new ArrayList<>(); private void consultSQL() { SQLiteDatabase db=conn.getReadab

我有一个包含各种用户姓名和个人代码(RFC)的数据库。
我需要在两个表(name和RFC)中进行搜索,引入一个新参数,比较并部署一个具有相同名称或相同代码(RFC)的列表

但我的程序只部署具有相同名称或代码(RFC)的第一条记录。 如果有多个同名用户,我需要部署所有用户,而不仅仅是找到的第一个用户

listUser=new ArrayList<>();

 private void consultSQL() {
    SQLiteDatabase db=conn.getReadableDatabase();
    String[] parameter={campoId.getText().toString() , campoId.getText().toString() };
    User user=null;

    try {
        Cursor cursor=db.rawQuery("SELECT "
                +Utilities.TABLE_ID+","
                +Utiliiess.TABLE_NAME+","
                +Utilities.TABLE_NUMBER+ ","
                +Utilities.TABLE_RFC+ ","
                +Utilities.TABLE_PASSWORD+
                " FROM "+Utilidades.TABLE_USER+" WHERE "+Utilities.TABLE_NAME+ " = ? OR " +Utilities.TABLE_RFC+" = ? ",parameter);

        cursor.moveToFirst();
            user = new User();
            user.setId(cursor.getInt(0));
            user.setName(cursor.getString(1));
            user.setNumber(cursor.getString(2));
            user.setRFC(cursor.getString(3));
            user.setPassword(cursor.getString(4));

            listUser.add(user);



    }catch (Exception e){
        e.printStackTrace();
        Toast.makeText(getApplicationContext(),"No coincidence",Toast.LENGTH_LONG).show();
    }

}
listUser=newarraylist();
私有void consultSQL(){
SQLiteDatabase db=conn.getReadableDatabase();
String[]参数={campoId.getText().toString(),campoId.getText().toString()};
User=null;
试一试{
Cursor Cursor=db.rawQuery(“选择”
+实用程序。表_ID+“,”
+实用程序表_NAME+“,”
+实用程序。表_编号+“,”
+实用程序。表_RFC+“,”
+Utilities.TABLE_密码+
“来自”+Utilities.TABLE_USER+”,其中“+Utilities.TABLE_NAME+”=?或“+Utilities.TABLE_RFC+”=?”,参数);
cursor.moveToFirst();
user=新用户();
user.setId(cursor.getInt(0));
user.setName(cursor.getString(1));
user.setNumber(cursor.getString(2));
user.setRFC(cursor.getString(3));
user.setPassword(cursor.getString(4));
添加(用户);
}捕获(例外e){
e、 printStackTrace();
Toast.makeText(getApplicationContext(),“无巧合”,Toast.LENGTH_LONG.show();
}
}

您可以使用

cursor.moveToFirst();
所以你得到了第一张唱片。游标具有您想要的所有记录,但您不需要迭代游标来获取它们。要在游标上迭代,请使用

 User = new User();

    while (cursor.moveToNext()) {
            user.setId(cursor.getInt(0));
            user.setName(cursor.getString(1));
            user.setNumber(cursor.getString(2));
            user.setRFC(cursor.getString(3));
            user.setPassword(cursor.getString(4));

            listUser.add(user);
    }

使用鼠标移动到光标的第一个元素

cursor.moveToFirst();
所以你得到了第一张唱片。游标具有您想要的所有记录,但您不需要迭代游标来获取它们。要在游标上迭代,请使用

 User = new User();

    while (cursor.moveToNext()) {
            user.setId(cursor.getInt(0));
            user.setName(cursor.getString(1));
            user.setNumber(cursor.getString(2));
            user.setRFC(cursor.getString(3));
            user.setPassword(cursor.getString(4));

            listUser.add(user);
    }

你应该在光标上循环。你应该在光标上循环。