在android中的sqllite中删除表命令显示错误-java.lang非法参数异常:空绑定参数

在android中的sqllite中删除表命令显示错误-java.lang非法参数异常:空绑定参数,android,android-sqlite,Android,Android Sqlite,嗨,我用这个代码放下了我的桌子 调用函数 DatabaseHandler4 dbdelete1 = new DatabaseHandler4(FiveActivity.this); try { Toast.makeText(getApplicationContext(), "Before delete", Toast.LENGTH_SHORT).show(); dbdelete1.deleteall(); Toast.makeText(getApplicationC

嗨,我用这个代码放下了我的桌子

调用函数

DatabaseHandler4 dbdelete1 = new   DatabaseHandler4(FiveActivity.this);

try {
    Toast.makeText(getApplicationContext(), "Before delete", Toast.LENGTH_SHORT).show();
    dbdelete1.deleteall();
    Toast.makeText(getApplicationContext(), "After Delet", Toast.LENGTH_SHORT).show();
} catch(Exception e) {
    Toast.makeText(getApplicationContext(),e.toString(), Toast.LENGTH_SHORT).show(); 
}
删除方法这是删除表的方法

public void deleteall()
{
    SQLiteDatabase db = this.getWritableDatabase();

    String selectQuery = "DROP TABLE IF EXISTS '" + TABLE_CONTACTS +"'" ;
    db.execSQL(selectQuery, null);
    db.close();
}

不需要单引号。这样说吧:

String selectQuery = "DROP TABLE IF EXISTS " + TABLE_CONTACTS;
db.execSQL(selectQuery);
问题可能在于
execSQL
的变化需要两个参数?我认为如果传递
null
,它就不起作用了,所以请尝试使用单参数版本。

问题是查询字符串。
“如果存在表格”+“+表格+联系人+”

如果存在表名称,则删除表;使用此语法从DROP TABLE的语法中删除单引号这可能是问题所在。

只需删除表名的单引号我尝试过它也显示了相同的错误尝试删除execSQL()的第二个参数(null);例如,db.execSQL(“如果存在帐户,请删除表;”)如果没有任何绑定参数,请使用execSQL()的单参数版本。请参阅