我如何更新sqlite数据库?

时间:2013-01-24 14:15:06

标签: android database sqlite sql-update

我想更新我的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)|名称(文字)|信息(文本)

2 个答案:

答案 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