gpt4 book ai didi

android - sqlite更新一个元组

转载 作者:行者123 更新时间:2023-11-30 04:05:44 24 4
gpt4 key购买 nike

我试图更新 sqlite 数据库中的一行,但它给出了语法错误。我想我错过了一些东西,但我看不到它。也许你可以帮助我。

更新代码:

 public void updateEntry(String oldname,String name,String mail, String phone,String adres)
{
ContentValues args = new ContentValues();
args.put(COLUMN_NAME, name);
args.put(COLUMN_EMAIL, mail);
args.put(COLUMN_PHONE, phone);
args.put(COLUMN_ADDRESS, adres);
sqLiteDatabase.update(MYDATABASE_TABLE, args,COLUMN_NAME + "=" + oldname, null);
}

调用更新(顺便说一句,t、t2、t3、t4 是 EditTexts)

 mySQLiteAdapter.updateEntry(isim, t.getText().toString(), t2.getText().toString(), t3.getText().toString(), t4.getText().toString());

错误

07-30 11:34:56.487: E/AndroidRuntime(1990): android.database.sqlite.SQLiteException: near "smith": syntax error: , while compiling: UPDATE MY_TABLE SET Name=?, Phone=?, Email=?, Address=? WHERE Name=john smith

首先我想,我没有提供任何地址或电话作为字符串,但我打印了它们并看到了正确的值。知道我的错在哪里吗?

最佳答案

这是因为你没有对包含john smitholdname字符串进行转义。

使用 sqLiteDatabase.update(MYDATABASE_TABLE, args,COLUMN_NAME + "='"+ oldname + "'", null);

或使用

String whereClause = COLUMN_NAME + "=?";
String[] whereArgs = new String[] {oldname};
sqLiteDatabase.update(MYDATABASE_TABLE, args, whereClause, whereArgs, null);

关于android - sqlite更新一个元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11720775/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com