我是android新手...我已经开发了一个数据库应用程序,我能够插入文本域详细信息,但我想删除特定行,我需要按名称搜索并删除用户。
有人可以帮我这个:
我的数据库代码是:
public void deleteRow(String firstname)
{
try {db.delete(TABLE_NAME,TABLE_ROW_ONE + "=?" + new String[]{firstname},null);}
catch (Exception e)
{
Log.e("DB ERROR", e.toString());
e.printStackTrace();
}
}
激活码是:
deleteButton.setOnClickListener ( 新的View.OnClickListener() { @Override public void onClick(查看v){deleteRow();} } );
private void deleteRow() { 尝试 {
db.deleteRow(textFieldOne.getText().toString());
updateTable();
emptyFormFields();
}
catch (Exception e)
{
Log.e("Delete Error", e.toString());
e.printStackTrace();
}
}
textFieldOne是用户的第一个名字。
有人可以帮我这个..
答案 0 :(得分:0)
从删除方法中删除null Argument ... 这样做---->
db.delete(TABLE_NAME,TABLE_ROW_ONE +“=?”+ new String [] {firstname});
它会正常工作......
答案 1 :(得分:0)
我认为您误解了Android + sqlite中?
的目的。
将?
用作占位符,然后将您作为删除的第三个参数传递的字符串替换为Android上的其他类似数据库函数。
在您的代码中,您将选择参数设置为选择字符串和选择参数字符串数组的组合。
从
更改代码/* ... */ TABLE_ROW_ONE + "=?" + new String[]{firstname},null);
到
/* ... */ TABLE_ROW_ONE + "=?", new String[]{firstname});
应该这样做。
你也可以说
db.delete(TABLE_NAME, TABLE_ROW_ONE + "='" + firstname + "'", null);
如果您愿意,?
的目的是对查询进行某种缓存,以便下次更快。