如何从android中的DB中删除一行

时间:2011-09-17 19:04:51

标签: android android-database

我是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是用户的第一个名字。

有人可以帮我这个..

2 个答案:

答案 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);

如果您愿意,?的目的是对查询进行某种缓存,以便下次更快。