从android中的SQLite数据库中删除特定记录的查询

发布于 2024-10-08 21:00:49 字数 3004 浏览 9 评论 0原文

我想从我的 Android 应用程序中的 SQLite 数据库中删除所选记录。但我无法做到这一点并在程序运行时出现异常。

这是我试图删除特定选定记录的内容。

 public void deleteRecord(String datarecord)
   {
       this.db.delete(TABLE_NAME, "name="+datarecord , null);
   }

这就是我在单击事件上执行的操作,从该事件中我执行所选记录的删除操作。

dh.deleteRecord(FavMusicList[position]);

dh 是我的 DataHelper 类的对象,我在其中创建了 deleteRecord 函数。

我收到 SQLite 语法错误异常。所以我想我肯定在删除特定选定记录的语法上犯了错误,但不知道我到底需要纠正什么。

有人可以帮我吗?

谢谢, 大卫

我的堆栈跟踪:

12-22 14:39:37.892: ERROR/AndroidRuntime(676): FATAL EXCEPTION: main
12-22 14:39:37.892: ERROR/AndroidRuntime(676): android.database.sqlite.SQLiteException: near "very": syntax error: , while compiling: DELETE FROM table1 WHERE name=Iâm very drunk
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:36)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1145)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1589)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.soundmachine.DataHelper.deleteRecord(DataHelper.java:42)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.soundmachine.FavoritesListing$SoundMacHineAdapter$1$1.onClick(FavoritesListing.java:192)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.os.Looper.loop(Looper.java:123)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.app.ActivityThread.main(ActivityThread.java:4627)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at java.lang.reflect.Method.invokeNative(Native Method)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at java.lang.reflect.Method.invoke(Method.java:521)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at dalvik.system.NativeStart.main(Native Method)

I want to delete the selected record form my SQLite Database in my android application. But I can't do it and getting the exception while program runs.

Here is what I am trying to delete the Particular Selected Record.

 public void deleteRecord(String datarecord)
   {
       this.db.delete(TABLE_NAME, "name="+datarecord , null);
   }

And this is what I am doing on the click event from where I perform the delete operation of the selected Record.

dh.deleteRecord(FavMusicList[position]);

dh is the object of my DataHelper Class where I have created the deleteRecord function.

I am getting the SQLite Exception for the Syntax Error. So I guess I am surely making mistake with the Syntax to delete the Particular Selected Record but couldn't know what exactly I have to correct.

Can anybody please help me in this?

Thanks,
david

My Stack Trace:

12-22 14:39:37.892: ERROR/AndroidRuntime(676): FATAL EXCEPTION: main
12-22 14:39:37.892: ERROR/AndroidRuntime(676): android.database.sqlite.SQLiteException: near "very": syntax error: , while compiling: DELETE FROM table1 WHERE name=Iâm very drunk
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:64)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:80)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:36)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1145)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1589)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.soundmachine.DataHelper.deleteRecord(DataHelper.java:42)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.soundmachine.FavoritesListing$SoundMacHineAdapter$1$1.onClick(FavoritesListing.java:192)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.os.Handler.dispatchMessage(Handler.java:99)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.os.Looper.loop(Looper.java:123)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at android.app.ActivityThread.main(ActivityThread.java:4627)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at java.lang.reflect.Method.invokeNative(Native Method)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at java.lang.reflect.Method.invoke(Method.java:521)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-22 14:39:37.892: ERROR/AndroidRuntime(676):     at dalvik.system.NativeStart.main(Native Method)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不必你懂 2024-10-15 21:00:50

DELETE FROM table1 WHERE name=我非常
喝醉了

空间是不允许的。您应该在 WHERE 子句中给出引号或双引号。

DELETE FROM table1 WHERE name=Iâm very
drunk

Space is not allowed. You should give quote, or double quote in the WHERE clause.

鸠书 2024-10-15 21:00:50

在 SQLite 中使用字符串匹配时,请将其保留在单引号“您的匹配字符串”中,

对于不需要的整数或数字引号。

DELETE FROM table1 WHERE name='Iâm very drunk'

While using string match in SQLite keep it with in single Quote 'your match string'

For Integer or number quote not required..

DELETE FROM table1 WHERE name='Iâm very drunk'
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文