有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java检索给定电子邮件中的某些列

我有一个具有以下属性的表用户:

private static final String COLUMN_UID = "id";
private static final String COLUMN_NAME = "name";
private static final String COLUMN_EMAIL = "email";
private static final String COLUMN_PASSWORD = "password";
private static final String COLUMN_LEVEL_ONE_SCORE = "score_1";
private static final String COLUMN_LEVEL_TWO_SCORE = "score_2";
private static final String COLUMN_LEVEL_THREE_SCORE = "score_3";

我希望用户输入他/她的电子邮件以检索分数1、分数2和分数2

我试过这个密码,但它不起作用

DbHelper db=new DbHelper(this);
final EditText email = (EditText) findViewById(R.id.emailSer);
 search.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            String s1= email.getText().toString();
            db.getsearch(s1);
        }
    });

搜索功能是:

    public String getsearch(String email)
{
    dbase = this.getReadableDatabase();
    Cursor cursor = dbase.rawQuery("select "+ COLUMN_LEVEL_ONE_SCORE +COLUMN_LEVEL_TWO_SCORE + COLUMN_LEVEL_THREE_SCORE +
            " from user where email  ' "+email+"'",null);
    StringBuffer buffer = new StringBuffer();
    while (cursor.moveToNext())
    {
        int index1 = cursor.getColumnIndex(COLUMN_LEVEL_ONE_SCORE);
        int index2 = cursor.getColumnIndex(COLUMN_LEVEL_TWO_SCORE);
        int index3 = cursor.getColumnIndex(COLUMN_LEVEL_THREE_SCORE);
        String s1 = cursor.getString(index1);
        String s2 = cursor.getString(index2);
        String s3 = cursor.getString(index3);
        buffer.append(s1 + "   " + s2 + "   " + s3);

        cursor.moveToNext();
    }
    return buffer.toString();
}

共 (1) 个答案

  1. # 1 楼答案

    将select语句更改为:

    dbase.rawQuery("select "+COLUMN_LEVEL_ONE_SCORE"+", "+COLUMN_LEVEL_TWO_SCORE+", "+COLUMN_LEVEL_THREE_SCORE+" from user where email = '"+email+"'",null);
    

    看起来这只是一个错误的SQL语法问题