在ANDROID中通过EMAIL_ADDRESS检索SQLITE DB中的用户名和密码

我需要获取用户名和密码…我正在我的应用程序中进行密码恢复,所以这是我的DB代码

public String getEmailAddr() throws sqlException {
    Cursor mCursor = db.rawQuery(
        "SELECT Username, Passwords FROM " + 
        USERS_TABLE + " WHERE EmailNO=?",null);

    if (mCursor != null) {           

        if(mCursor.getCount() > 0 {
            //return obj1.getpassword();
        }
    }

    //return false;
    return obj1.getpassword();
}

用户输入电子邮件地址时,必须首先检查是否存在,并使用我的活动代码发送电子邮件返回密码和用户名

public void onClick(View v) {
    String EmailAddress = txtEmailAddress.getText().toString();
    try {
        if(EmailAddress.length() > 0) {
            DBAdapter  dbUser = new DBAdapter (RecoverPassword.this);
            dbUser.open();

            if(dbUser.getEmailAddress(EmailAddress)) {
                Toast.makeText(RecoverPassword.this,
                    "Email Successfully ", 
                    Toast.LENGTH_LONG).show();
                    Toast.makeText String to = 
                        txtEmailAddress.getText().toString();
                    //String subject = EmailAddress.getText().toString();
                    // String message = EmailAddress.getText().toString();
                    Intent email = new Intent(Intent.ACTION_SEND);
                    email.putExtra(Intent.EXTRA_EMAIL, new String[]{ to});
                    email.putExtra(Intent.EXTRA_SUBJECT, "Password Recovery");
                    email.putExtra(Intent.EXTRA_TEXT, dbUser.getEmailAddr());
                    //need this to prompts email client only 
                    email.setType("message/rfc822");
                    startActivity(Intent.createChooser(email, "gmail :"));                 
                }

                else {
                    Toast.makeText(RecoverPassword.this,
                        "Invalid Email", Toast.LENGTH_LONG).show();
                    txtEmailAddress.setText("");
                }

                dbUser.close();
            }
        }

        catch(Exception e) {
            Toast.makeText(RecoverPassword.
            this,e.getMessage(), Toast.LENGTH_LONG).show();
        }

        Please help me to check what is wrong...but there is no error but it cant return 
        username and password to the email sent

解决方法:

我对你的代码感到困惑,但是当你想从Cursor获取数据时

String[] whereArgs = new String[<data>];
    Cursor mCursor = db.rawQuery("SELECT Username, Passwords FROM " + USERS_TABLE + " WHERE EmailNO = ?", whereArgs);
    mCursor.moToFirst();

    if(mCursor.getCount() > 0} {
       String userName = mCursor.getString(0);
       String password = mCursor.getString(1);

    }

您必须使用提供从数据库返回数据的Cursor实例的getter.

编辑:

我没有注意到你使用whereArgs所以当你使用WHERE子句时,你必须具体whereArgs as String []包含将被替换的数据而不是?焦炭.

您可以使用Fo关闭数据库

@Override
protected void onDestroy() {
    super.onDestroy();
    if (yourDatabase != null) {
        yourDatabase.close();
    }
}

或者在打开数据库的每个工作之后,你应该关闭()db.

相关文章

SQLite架构简单,又有Json计算能力,有时会承担Json文件/RES...
使用Python操作内置数据库SQLite以及MySQL数据库。
破解微信数据库密码,用python导出微信聊天记录
(Unity)SQLite 是一个软件库,实现了自给自足的、无服务器...
安卓开发,利用SQLite实现登陆注册功能