1

我是 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 ( new View.OnClickListener() { @Override public void onClick(View v) {deleteRow();} } );

私人无效删除行(){尝试{

        db.deleteRow(textFieldOne.getText().toString());


        updateTable();


        emptyFormFields();
    }
    catch (Exception e)
    {
        Log.e("Delete Error", e.toString());
        e.printStackTrace();
    }
}

textFieldOne 是用户的名字。

有人可以帮我解决这个..

4

2 回答 2

0

从您的删除方法中删除空参数...这样做---->

db.delete(TABLE_NAME,TABLE_ROW_ONE + "=?" + new String[]{ firstname });

它会正常工作...

于 2011-09-17T21:03:15.027 回答
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);

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

于 2011-09-17T21:41:49.400 回答