我想通过电子邮件更改密码。我已经尝试过在这个论坛上给出答案,但仍然无法做到

时间:2019-12-10 09:03:46

标签: android sqlite

我正在与下面给出的课程一起工作。我已经根据需要制作了setter,getter和构造函数。

public class Contact {
    int ID;
    String Name;
    String Email;
    String Password;
    String DateofBirth;
    String Address;
    String PhoneNumber;

//这是我的DatabaseHandler.java文件

public class DatabaseHandler extends SQLiteOpenHelper {    
    private static final int DATABASE_VERSION = 1;         
    private static final String DATABASE_NAME = "contactsManager";
    private static final String TABLE_CONTACTS = "contacts";
    private static final String KEY_ID = "id";             
    private static final String KEY_NAME = "name";         
    private static final String KEY_EMAIL="email";         
    private static final String KEY_PASSWORD="password";   
    private static final String KEY_DOB = "dob";           
    private static final String KEY_ADDRESS = "address";   
    private static final String KEY_PH_NO = "phone_number";

我正在更新一封电子邮件中的密码,但是该应用程序崩溃了。以下代码是从该论坛上学习的,并且也会崩溃。

public void updatePassword(Contact contact){                             
    SQLiteDatabase db=this.getWritableDatabase();                        
    String sql="SELECT KEY_ID FROM " +TABLE_CONTACTS + "KEY_EMAIL"+"=?"; 
    db.rawQuery("UPDATE"+ TABLE_CONTACTS +" SET " +                      
            KEY_PASSWORD+"="+contact.getPassword()+"WHERE"+              
            KEY_EMAIL+"=?",new String[]{contact.getEmail()});            
}                                                                        

2 个答案:

答案 0 :(得分:0)

尝试做:-

public void updatePassword(Contact contact){                             
    SQLiteDatabase db=this.getWritableDatabase();                                 
    db.rawQuery("UPDATE " + TABLE_CONTACTS +" SET " +                      
                KEY_PASSWORD+"=? WHERE "+              
                KEY_EMAIL+"=?",new String[]{contact.getPassword(),contact.getEmail()});
}

这将在UPDATE关键字之后和WHERE关键字之前添加空间,并且具有两个绑定变量的参数。不需要sql变量,它什么也不做。

答案 1 :(得分:0)

public void updatePassword(String email, String password){
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues values = new ContentValues();
    values.put(KEY_PASSWORD, password);
    db.update(TABLE_CONTACTS, values, KEY_EMAIL+" = ?",new String[] { email });
    db.close();
}