1

私はアンドロイドを初めて使用します...データベースアプリケーションを開発しました。テキストフィールドの詳細を挿入できましたが、特定の行を削除したいので、名前で検索してユーザーを削除する必要があります。

誰かがこれについて私を助けることができます:

私のDBコードは次のとおりです。

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

プライベートボイドdeleteRow(){試してください{

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


        updateTable();


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

textFieldOne はユーザーの名前です。

誰かがこれについて私を助けることができます..

4

2 に答える 2

0

?Android+sqliteの目的を誤解していると思います。

これら?はプレースホルダーとして使用され、Android の delete およびその他の同様のデータベース関数に 3 番目の引数として渡す文字列に置き換えられます。

コードでは、選択引数を選択文字列と選択引数文字列配列の組み合わせに設定しています。

からのコードの変更

/* ... */ 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 に答える
0

削除メソッドからnull引数を削除します...次のようにします---->

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

それはうまくいくでしょう...

于 2011-09-17T21:03:15.027 に答える