4

ユーザー名を入力するだけで特定の連絡先とその詳細を削除できる簡単なログインページを作成しようとしています。

つまり、データベース内の特定の行を削除したいと考えています。

    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;
    }
    }
    }

その特定のユーザーを削除するには、編集ビューにユーザー名とパスワードを入力する必要があることを意味します。このようなものを使用するように言っているソースをいくつか見つけましたが、試してみましたがうまくいきません。エラーはありますか?

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

ユーザー名を取得するだけで、データベース内の特定の行を削除したいと思います。削除する行のIDとして入力します。そうする方法、または使用できる代替手段はありますか?

4

3 に答える 3

15

行のすべてのエントリを個別に削除する必要はありません。次のメソッドは、usernameフィールドが渡された と等しい行を削除する必要がありuserNameます。passwordフィールドと行の他のフィールドも削除されます。

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();
    }
}

編集: メソッドをコピーするだけで、DB を手動で開いたり閉じたりする必要がなくなるので、

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

公正になるだろう

mySQL.deleteUser(username);
于 2013-02-22T15:32:35.390 に答える
3

単純な SQL クエリを使用して、特定の行 Acc to sql を削除できます

DELETE FROM table_name WHERE some_column=some_value; だから使う

db.execSQL("delete from " + Message.TABLENAME +" where specific_row_to_delete=\'" + user_name );

複数の条件がある場合は、次のようwhereに使用できますAND

db.execSQL("delete from  " + TABLENAME +
            " where specific_row_to_delete=\'" + user_name +
            "\' and condition_to_delete  >= " + condtion_argument );
于 2015-02-19T05:42:50.313 に答える