java - 无法更新 android sqlite 中的行

标签 java android sqlite sql-update

第一次尝试更新时,我尝试更新 sqlite 上一个表中的一行:

    public void updateMasterSPAJ(
            String nama_pp,
            String gelar_pp,
            String ibu_pp,
            String hubungan_pp,
            int spinner_hubungan_pp 
        ) {
    ContentValues cv=new ContentValues();
        cv.put("nama_pp", nama_pp);
        cv.put("gelar_pp", gelar_pp);
        cv.put("ibu_pp", ibu_pp);
        cv.put("hubungan_pp", hubungan_pp);
        cv.put("spinner_hubungan_pp", spinner_hubungan_pp); 
    getWritableDatabase().update("pemegang_polis", cv, "SPAJ_ID=SPAJ_ID", null);
}

但是此代码将更新所有行,而不是特定行,因此我更改了此行中的代码 getWritableDatabase().update("pemegang_polis", cv, "SPAJ_ID=SPAJ_ID", null); 进入

`getWritableDatabase().update("pemegang_polis", cv, "pemegang_polis.SPAJ_ID=master_spaj.SPAJ_ID", null);` 

我收到错误,这是我的 logcat 的内容:

android.database.sqlite.SQLiteException: no such column: master_spaj.SPAJ_ID (code 1): , while compiling: UPDATE pemegang_polis SET spinner_hubungan_pp=?,ibu_pp=?,hubungan_pp=?,nama_pp=?,gelar_pp=? WHERE pemegang_polis.SPAJ_ID=master_spaj.SPAJ_ID

然后我将该行更改为:

    a=Menu_SPPAJ.getX();
    getWritableDatabase().update("pemegang_polis", cv, "SPAJ_ID="+ a, null);

因为来自 pemegang_polisSPAJ_ID 的值是从类 Menu_SPPAJ.getX() 获取的。我再次遇到错误,这是我的 logcat 所说的:

android.database.sqlite.SQLiteException: near ".01": syntax error (code 1): , while compiling: UPDATE pemegang_polis SET spinner_hubungan_pp=?,ibu_pp=?,hubungan_pp=?,nama_pp=?,gelar_pp=? WHERE SPAJ_ID=AndroidESPAJ2014.01.12.04.20.04.568

我不知道我的错在哪里,我认为一切都很好,有什么我想念的还是其他的吗?我希望有人理解我的问题,可以帮助我解决我的问题,非常感谢。

最佳答案

android.database.sqlite.SQLiteException: near ".01": syntax error (code 1): , while compiling: UPDATE pemegang_polis SET spinner_hubungan_pp=?,ibu_pp=?,hubungan_pp=?,nama_pp=?,gelar_pp=? WHERE SPAJ_ID=AndroidESPAJ2014.01.12.04.20.04.568

SPAJ_IDAndroidESPAJ2014.01.12.04.20.04.568 看起来像一个字符串文字,但不像'字符串文字' 那样被引用。

但是,最好使用 ? 文字占位符并绑定(bind)参数:

getWritableDatabase().update("pemegang_polis", cv, "SPAJ_ID=?", new String[] { a });

关于java - 无法更新 android sqlite 中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21073138/

相关文章:

java - 设置 FragmentTabHost 时出错 : No tab known for tag null - Android

python - 用作上下文管理器的 sqlite3 连接的事务不是原子的

java - 旧设备中的 PreferenceFragment?

android - 如何在android中将编辑后的 Canvas 保存为原始图像大小的图像

ios - 插入数据库在 iOS 中不起作用?

sql - SQLite获得第12条记录-最有效?

java - Jtable tablecell渲染器?

java - 使用setter的有效方法

java - 如何使用外部库在 java 上正确工作但在 Android Activity 上不工作

字符串之外的 Java 变量名