2011-09-17 18 views
1

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

誰かがこの上で私を助けることができます。

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

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

deleteButton.setOnClickListener ( 新しい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を試みるユーザーの名です。

誰かがこの上で私を助けることができます。..

+0

なぜ標準SQLクエリを使用しないのですか? – terrygarcia

答えて

0

があなたのdeleteメソッドからnull引数を削除... この---->

db.delete(TABLE_NAME、TABLE_ROW_ONE +「=好きです? "+新しい文字列[] {ファーストネーム});それが正常に動作します

...

0

は、私はあなたがAndroidの+ sqliteの中?の目的を誤解したと思います。

?は、プレースホルダーとして使用されます。このプレースホルダーは、Androidのdeleteやその他の類似したデータベース関数の3番目の引数として渡されます。

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

/* ... */ TABLE_ROW_ONE + "=?", new String[]{firstname}); 

/* ... */ TABLE_ROW_ONE + "=?" + new String[]{firstname},null); 

からコードを変更すると、トリックを行う必要があります。あなたがしたいが、彼らはより速く、次回だろうので?の目的は、クエリとキャッシュのいくつかの種類を行うのであれば

また、単に

db.delete(TABLE_NAME, TABLE_ROW_ONE + "='" + firstname + "'", null); 

を言うことができます。

+0

こんにちは、たくさんの人に感謝、しかし何も私のために働いた.. –

+0

ねえ、多くの人に感謝、でも何も私のために働いた..公共ボイドのdeleteRow(文字列FIRSTNAME) \t { \t \t //与えられたID \t \t試み{ \t \t \t \t \t \t db.delete(TABLE_NAME、TABLE_ROW_ONE + "=" の行を削除するにはデータベースマネージャに尋ねます+ firstname、null); \t \t \t \t \t \t \t} \t \tキャッチ(例外e) \t \t { \t \t \t Log.e( "DBエラー"、e.toString())。 \t \t \t e.printStackTrace(); TABLE_ROW_ONEは実際にあなたがしたいカラム名に等しいことを \t \t} \t} –

+0

私は、行IDによって、それを削除すると、それは削除されますが、私は名前で検索し、削除したい...しかし、これは起きていない。.. –

関連する問題