2012-11-01 19 views
6

こんにちは、すべての初心者Android、これにいくつかの助けを愛するでしょうか?Android :: SQLite、そのような列は見つかりませんでしたか?

android.database.sqlite.SQLiteException:いいえ、そのようなコラム:ASD:、コンパイル中:名前は= ASD

レーベルからDELETE、これはエラー午前直面している、そして、ここでのコードがあります:

このDBhelper方法である:

/** 
* Delete a label table 
* */ 
public void deleteLabel(String label) { 
    SQLiteDatabase db = this.getWritableDatabase(); 

    // ContentValues values = new ContentValues(); 
    // values.remove(label); 

    // Deleting Row 
    db.delete(TABLE_LABELS, KEY_NAME + "=" + label, null); 
    db.close(); // Closing database connection 
} 

、ここでメソッドを呼び出す主な活動コードです:

// for spinner onItemListener 
// and here is what label is 

final String label = parent.getItemAtPosition(position).toString(); 

Button dialogDeletelButton = (Button) dialog 
       .findViewById(R.id.deleteButton); 
     dialogDeletelButton.setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // database handler 
       DatabaseHandler db = new DatabaseHandler(
         getApplicationContext()); 

       // inserting new label into database 
       db.deleteLabel(label); 

       // Hiding the keyboard 
       InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); 
       imm.hideSoftInputFromWindow(inputLabel.getWindowToken(), 0); 

       // loading spinner without the deleted data 
       loadSpinnerData(); 

      } 
     }); 

答えて

13

'asd'(つまり、コード内の変数label)を引用する必要があります。引用符で囲まれている場合は、name列と比較する文字列です。

引用符で囲まれていない場合、SQLは別の列名として扱います。

あなたはとあなたの活動でこれを行うことができます:

db.deleteLabel ("'" + label + "'"); 

が、ヘルパー関数を変更するクリーナーことがあります

db.delete (TABLE_LABELS, KEY_NAME + "='" + label + "'", null); 

あなたが何かをしたいことのように見えるので、引用符で囲まれていないラベル(現在コメントされているContentValuesのもの)があります。

+1

本当にありがとうございました。 – Tayseer

+0

できる場合はこれを確認してください: http://stackoverflow.com/questions/13178056/android-get-data-from-another-activity – Tayseer

+0

''は時間のキラーです – playmaker420

関連する問題