我想更新我的android应用程序的sqlite数据库,但是我在更新方法中遇到错误。
我的代码:
public void addInfo(View view){
EditText et = (EditText)findViewById(R.id.txtContacto);
String TAG = ((TextView)findViewById(R.id.textView2)).getText().toString();
String FACH = ((TextView)findViewById(R.id.textView1)).getText().toString();
ContentValues werte = new ContentValues();
werte.put("info",et.getText().toString());
mDatenbank.update(TAG, werte, "name="+FACH, null);
Toast.makeText(this,
getResources().getString(R.string.db_info_add),
Toast.LENGTH_SHORT).show();
}
TAG是我的Tablename FACH是一个专栏
表格布局:
id(int)|名称(文字)|信息(文本)
答案 0 :(得分:1)
如果FACH包含字符串文字所需的引号,则会起作用,如String FACH="'I am quoted'"
中所示。它仍然是错误的:真正的解决方案是使用whereArgs
,如下所示:
mDatenbank.update(TAG,werte,"name=?",new String[] { FACH });
(免责声明:我不使用Java,我的代码可能是错误的。)
答案 1 :(得分:0)
这里有一个很好的例子:http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/
updateContact()
// Updating single contact
public int updateContact(Contact contact) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(KEY_NAME, contact.getName());
values.put(KEY_PH_NO, contact.getPhoneNumber());
// updating row
return db.update(TABLE_CONTACTS, values, KEY_ID + " = ?",
new String[] { String.valueOf(contact.getID()) });
}
最好的方法是向我们展示logcat