0

在我的应用程序中,我想根据两列更新我的数据库表。意味着更新工资在哪里firstname="ekant"last name="kancha"。所以任何人都可以告诉我我必须写什么查询。

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);

}

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

请帮助我.thanx

4

2 回答 2

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);
}

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

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


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

于 2013-10-27T06:02:20.213 回答
2

用这个...

 String where = fname+ "=" + "ekanta" + " and " + lname + "=" + "your lastname";
于 2013-10-27T05:55:02.110 回答