【问题标题】:How I can update a sqlite Database?如何更新 sqlite 数据库?
【发布时间】:2013-01-24 14:15:06
【问题描述】:

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

【问题讨论】:

  • 请显示 logcat 和您的 database.java 类
  • “我得到一个错误”绝对没有任何意义,除非你告诉我们错误是什么。我们无法读取您的想法或从我们所在的位置查看您的屏幕,我们也无法看到 logcat。如果您不向我们提供任何信息,我们将无法帮助您解决问题。

标签: android database sqlite sql-update


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    这里有一个很好的例子: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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 2017-01-15
      • 1970-01-01
      相关资源
      最近更新 更多