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

在android中从SQLite数据库中删除特定记录的查询,android,database,sqlite,records,Android,Database,Sqlite,Records,我想从我的android应用程序中的SQLite数据库中删除所选记录。但我无法在程序运行时执行此操作并获取异常 下面是我试图删除特定选定记录的内容 public void deleteRecord(String datarecord) { this.db.delete(TABLE_NAME, "name="+datarecord , null); } dh.deleteRecord(FavMusicList[position]); 这就是我在click事件上所做的

我想从我的android应用程序中的SQLite数据库中删除所选记录。但我无法在程序运行时执行此操作并获取异常

下面是我试图删除特定选定记录的内容

 public void deleteRecord(String datarecord)
   {
       this.db.delete(TABLE_NAME, "name="+datarecord , null);
   }
dh.deleteRecord(FavMusicList[position]);
这就是我在click事件上所做的,我从中执行所选记录的删除操作

 public void deleteRecord(String datarecord)
   {
       this.db.delete(TABLE_NAME, "name="+datarecord , null);
   }
dh.deleteRecord(FavMusicList[position]);
dh是我创建deleteRecord函数的DataHelper类的对象

我得到了该语法错误的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)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):致命异常:main
12-22 14:39:37.892:ERROR/AndroidRuntime(676):android.database.sqlite.SQLiteException:near“very”:语法错误:,编译时:从表1中删除,其中name=I–非常醉
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在android.database.sqlite.SQLiteCompiledSql.native_compile(本机方法)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:91)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在android.database.sqlite.SQLiteCompiledSql.(SQLiteCompiledSql.java:64)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:80)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于android.database.sqlite.SQLiteStatement.(SQLiteStatement.java:36)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于android.database.sqlite.SQLiteDatabase.compileStatement(SQLiteDatabase.java:1145)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于android.database.sqlite.SQLiteDatabase.delete(SQLiteDatabase.java:1589)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于com.android.soundmachine.DataHelper.deleteRecord(DataHelper.java:42)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在com.android.soundmachine.FavoritesListing$SoundMacHineAdapter$1.onClick(FavoritesListing.java:192)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于android.os.Handler.dispatchMessage(Handler.java:99)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在android.os.Looper.loop(Looper.java:123)上
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于android.app.ActivityThread.main(ActivityThread.java:4627)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于java.lang.reflect.Method.invokenactive(本机方法)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于java.lang.reflect.Method.invoke(Method.java:521)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-22 14:39:37.892:ERROR/AndroidRuntime(676):在dalvik.system.NativeStart.main(本机方法)
从表1中删除,其中name=I–m 醉

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

从表1中删除,其中name=I–m 醉


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

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

对于整数或数字,不需要引号

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

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

对于整数或数字,不需要引号

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

如果您提供堆栈跟踪,这将很有帮助。@Mudassir:对不起,我不明白您所说的堆栈跟踪是什么意思?Eclipse中生成的错误报告。Google关于如何使用DDMS?@Mudassir:我已经在我的问题中放置了堆栈跟踪。如果您提供堆栈跟踪,这将很有帮助。@Mudassir:抱歉,但我不明白您所说的堆栈跟踪是什么意思?Eclipse中生成的错误报告。Google关于如何使用DDMS?@Mudassir:我已经在我的问题中添加了堆栈跟踪。谢谢。空间逻辑。:)但我很好奇你是怎么知道的?谢谢。空间逻辑。:)但我很好奇你是怎么知道的?