java – Android SQLite从数据库中删除特定行

我正在尝试做一个简单的登录页面,我只需输入用户名即可删除特定联系人及其详细信息.

换句话说,我想删除数据库中的特定行.

    public int deleteUsername(String content){

    String whereClause = KEY_CONTENT1 + "= '" + content + "'";

    return sqLiteDatabase.delete(MYDATABASE_TABLE, whereClause, null);
}

public int deletePassword(String content){

    String whereClause = KEY_CONTENT2 + "= '" + content + "'";

    return sqLiteDatabase.delete(MYDATABASE_TABLE, whereClause, null);
}
  public void onClick(View v) {

    String username = null;
    String password = null;

    username = this.txtnewuserinputedituser.getText().toString().toUpperCase();
    password = this.txtnewpasswordinputedituser.getText().toString().toUpperCase();


    switch (v.getId())
    {

    case R.id.btndeleteuser :
    {   


        mySQL.openToWrite();
        mySQL.deleteUsername(username);
        mySQL.deletePassword(password);;
        mySQL.close();

        String toastText = "User Deleted";
        Toast.makeText(getApplicationContext(), toastText, Toast.LENGTH_SHORT).show();

        break;
    }
    }
    }

这意味着我必须在editview中输入用户名和密码才能删除该特定用户.
我找到了一些消息来告诉我使用这样的东西
但我尝试过,但它不起作用.有什么错误吗?

public int deleteRow(String showId) {
    String table_name = "MYDATABASE_TABLE";
    String where = "showId='"+showId+"'";
    return sqLiteDatabase.delete(table_name, where, null);
}

我想通过获取用户名来删除数据库中的特定行.我输入要删除的行的id.怎么做,或者有什么替代品我可以使用?

最佳答案
您无需单独删除行中的每个条目.以下方法应删除username字段等于传递的userName的行.密码字段和行中的任何其他字段也将被删除.

public void deleteUser(String userName)
{
    SQLiteDatabase db = this.getWritableDatabase();
    try
    {
        db.delete(MYDATABASE_TABLE, "username = ?", new String[] { userName });
    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
    finally
    {
        db.close();
    }
}

编辑:如果你只是复制方法,你不必再手动打开和关闭数据库,所以你的行

mySQL.openToWrite();
mySQL.deleteUsername(username);
mySQL.deletePassword(password);;
mySQL.close();

会变得公正

mySQL.deleteUser(username);

转载注明原文:java – Android SQLite从数据库中删除特定行 - 代码日志