0

我想对我的 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 是我的表名 FACH 是一列

表布局:

id (int) | 名称(文本) | 信息(文本)

4

2 回答 2

1

如果 FACH 包含字符串文字所需的引号,它将起作用,如String FACH="'I am quoted'". 它仍然是错误的:真正的解决方案是使用whereArgs,如下所示:

mDatenbank.update(TAG,werte,"name=?",new String[] { FACH });

(免责声明:我不使用 Java,我的代码可能错误得离谱)。

于 2013-01-24T14:24:02.200 回答
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

于 2013-01-24T14:37:31.477 回答