0

我在获取更新以在 android 应用程序的 SQLiteDatabase 事件中的 onUpgrade 事件中工作时遇到问题。调用 onUpgrade 时执行 SQL 更新后数据未得到更新。

下面是我尝试执行的代码,在模拟器中运行应用程序。

我还必须在每次运行时将数据库重新上传到模拟器,因为我正在从版本 1 升级到版本 2。

String strSpecChar = DatabaseUtils.sqlEscapeString("�");
String strSpecCharFilter = DatabaseUtils.sqlEscapeString("%�%");
String strReplChar = DatabaseUtils.sqlEscapeString("'");

String strCharReplace = "UPDATE "
  + myTable + " SET "
  + column2 + " = REPLACE(" + column2 + ", " 
                            + strSpecChar + ", " 
                            + strReplChar + ")" 
  + " WHERE " + column2 + " LIKE " + strSpecCharFilter;

db.execSQL(strCharReplace);

我在网上找了几天试图让它工作,但没有成功,我在网上搜索,使用调试器,我还验证了上面的代码在发布我之前通过 sqlite3 adb shell 命令行界面工作问题。

提前感谢您对此提供的任何帮助或建议。

* 编辑 * 感谢您的回复和反馈。

我遇到的问题是数据没有更新。运行应用程序后,我仍然看到执行更新语句之前的旧数据。我正在尝试用撇号替换“替换字符”(被视为带有白色问号的黑色菱形)。

执行 SQL 时,我在 LogCat 中没有收到任何错误。

我之前确实通过 adb shell 使用 sqlite3 命令行工具验证了 SQL 是否有效。

strCharReplace 的日志值:

strCharReplace = "UPDATE table SET column2 = REPLACE(payeename, '�', '''') WHERE column2 LIKE '%�%'"
4

0 回答 0