android.database.sqlite.sqliteException:没有这样的列:asd :,编译时:DELETE FROM标签WHERE name = asd
这是我面临的错误,这是代码:
这是DBhelper中的方法:
/** * Delete a label table * */public voID deleteLabel(String label) { sqliteDatabase db = this.getWritableDatabase(); // ContentValues values = new ContentValues(); // values.remove(label); // Deleting Row db.delete(table_LABELS,KEY_name + "=" + label,null); db.close(); // Closing database connection}
这是调用该方法的主要Activity代码:
// for spinner onItemListener// and here is what label isfinal String label = parent.getItemAtposition(position).toString();button dialogDeletelbutton = (button) dialog .findVIEwByID(R.ID.deletebutton); dialogDeletelbutton.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { // database handler DatabaseHandler db = new DatabaseHandler( getApplicationContext()); // inserting new label into database db.deleteLabel(label); // HIDing the keyboard inputMethodManager imm = (inputMethodManager) getSystemService(Context.input_METHOD_SERVICE); imm.hIDeSoftinputFromWindow(inputLabel.getwindowToken(),0); // loading spinner without the deleted data loadSpinnerData(); } });解决方法 您几乎肯定需要引用’asd'(即代码中的label变量).如果它被引用,它是一个与名称列进行比较的字符串.
如果它没有引用,sql只会将其视为另一个列名.
您可以在以下活动中执行以下 *** 作:
db.deleteLabel ("'" + label + "'");
但是更改辅助函数可能更干净:
db.delete (table_LABELS,KEY_name + "='" + label + "'",null);
因为看起来你可能想要在那里的某个点处使用未加引号的标签(当前被注释掉的ContentValues内容).
总结以上是内存溢出为你收集整理的android-sqlite – Android :: SQLite,没有找到这样的列?全部内容,希望文章能够帮你解决android-sqlite – Android :: SQLite,没有找到这样的列?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)