【问题标题】:SQLITE can't delete simple rowSQLITE 不能删除简单行
【发布时间】:2014-10-07 19:27:28
【问题描述】:

我触摸按钮,没有任何反应。

它只显示写好的单词,我要删除的行仍然保留在表格中。

public void deleteword (View view) {
    db=openOrCreateDatabase("MyDB1",MODE_PRIVATE, null);
    EditText deleteword=(EditText)findViewById(R.id.deleteword);        
    String delete = deleteword.getText().toString();        
    db.execSQL("DELETE FROM Word WHERE uword='"+delete+"'");
    Toast toast = Toast.makeText(getApplicationContext(), delete, Toast.LENGTH_SHORT);
    toast.show();   
}

【问题讨论】:

  • 你确定这正是这个词在数据库中的显示方式吗? whitespace'll 把它扔掉。例如where uword='[space]foo' matchines 与 where uword='foo' 完全不同
  • 没有任何空格,当我删除 Toast,重新启动应用程序并触摸按钮时,Eclipse 在日志中没有写入任何内容,在命令 db.execSQL("DELETE FROM Word WHERE uword='"+删除+"'");没有答案
  • 需要考虑的事情... 是否有事务或提交语句?你将不得不自己阅读这个。但是您需要检查某处是否发生了事务/提交语句。也许有一种方法可以将您的 sqlite 驱动程序设置为自动提交每个语句。
  • 你试过sqlite3命令行的操作了吗?
  • 另外,请使用准备好的语句而不是连接您的参数!

标签: java android sqlite sql-delete


【解决方案1】:

试试这个

String delete = deleteword.getText().toString();        
db.delete(Word, uword+"=?", new String[] (delete));

参考; http://developer.android.com/training/basics/data-storage/databases.html#DeleteDbRow

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多