SQLiteDatabase.query()方法不返回游标

时间:2018-01-23 12:16:53

标签: android sqlite

我尝试在我的登录系统中使用查询方法。我的逻辑很简单。一旦用户使用电子邮件和密码注册,如果电子邮件和密码在数据库中匹配,他就可以登录。对于入门代码,我想要从数据库中读取与电子邮件广告密码匹配的行。如果查询方法只返回1行,则用户将转到下一页。

但问题是查询方法没有返回任何行。我提供了以下代码。谢谢

protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.login_signup);

    demoText = (TextView) findViewById(R.id.demoText);
    input_email = (EditText) findViewById(R.id.login_email);
    input_password = (EditText) findViewById(R.id.login_password);

    login = (Button) findViewById(R.id.login);
    register = (Button) findViewById(R.id.register);

    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            login_email = input_email.getText().toString();
            login_password = input_password.getText().toString();

            Log.v("login_signup","Email= "+login_email+" Password"+login_password);

            if(checkEntry(login_email,login_password)){
                Intent i = new Intent(login_signup.this,anotherscreen.class);
                startActivity(i);
                Toast.makeText(login_signup.this,"Login Successful",Toast.LENGTH_SHORT).show();
            }
            else Toast.makeText(login_signup.this,"Login Failed",Toast.LENGTH_SHORT).show();
        }
    });

    register.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent i = new Intent(login_signup.this,Register.class);
            startActivity(i);
        }
    });

    toolbar= (Toolbar) findViewById(R.id.app_bar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setIcon(R.drawable.text_icon);

    dbHelper = new scannerDbHelper(this);
}

public boolean checkEntry(String email,String password){

    db = dbHelper.getReadableDatabase();
    String projection[] = {loginEntry.COLUMN_EMAIL_ID,loginEntry.COLUMN_PASSWORD};
    String selection = loginEntry.COLUMN_EMAIL_ID + "= ?"+" AND "+loginEntry.COLUMN_PASSWORD + "= ?";
    String selectionArgs[] = {email,password};

    Cursor cursor = db.query(loginEntry.TABLE_NAME,projection,selection,selectionArgs,null,null,null);

    demoText.setText("Rows returned "+ cursor.getCount());

    if(cursor.getCount()== 1)
        return true;
    else
        return false;
}

0 个答案:

没有答案
相关问题