如何在sqlite android中更新表

Eka*_*ain 0 sql sqlite android

在我的应用程序中,我想基于两列更新我的数据库表.Means更新工资在哪里firstname="ekant"和.So last name="kancha"可以任何正文plz告诉我什么是我必须写的查询.

public int updateStatus(int salary,String fname,String lName)
{
    ContentValues cv=new ContentValues();

    String where = fname+ "=" + "ekanta";
    cv.put("salary",salary);
    return sdb.update(DATABASE_TABLENAME, cv, where, null);

}
Run Code Online (Sandbox Code Playgroud)

此代码仅在我想要根据名字更新时才有效.但我想根据名字和姓氏进行更新.

请帮帮我.谢谢

use*_*740 5

使用占位符.这使得更容易读取 SQL查询并防止SQL注入(意外或其他).

public int updateSalary (int salary, String fname, String lName)
{
    ContentValues cv = new ContentValues();
    cv.put("salary", salary);

                 /* use COLUMN NAMES here */                     
    String where = "firstname = ? and lastname = ?";
                 /* bind VALUES here */
    String[] whereArgs = new { fname, lname };
    return sdb.update(DATABASE_TABLENAME, cv, where, whereArgs);
}
Run Code Online (Sandbox Code Playgroud)

如果你有private final static COLUMN_FNAME = "firstname"COLUMN NAMES的常量(例如),那么你可以where使用这些常量构建.

但是,不要将VALUES放在where字符串中.相反,按照上面的例子,?通过whereArgs阵列使用和提供任何VALUES .


此外,人们(甚至在同一组织内)也可以共享相同的名字和姓氏.在这种情况下围绕这种配对的数据库查询/更新将会中断,因此在设计API以使用更好的记录标识符时可能是谨慎的.