2014-07-23 133 views
-3

嗨,我是新的android開發。我想從數據庫中刪除一個字符串。怎麼做?請幫忙。下面是我的代碼。我正在嘗試按下按鈕時從數據庫中刪除s字符串。如何從android中的SQLite數據庫中刪除字符串?

這是我DATABSE輔助類:

import android.content.Context; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 

public class DbHelper extends SQLiteOpenHelper { 
    static String DATABASE_NAME="userdata"; 
    public static final String TABLE_NAME="user"; 
    public static final String KEY_FNAME="fname"; 
    public static final String KEY_ID="id"; 
    public DbHelper(Context context) { 
     super(context, DATABASE_NAME, null, 1); 

    } 

    @Override 
    public void onCreate(SQLiteDatabase db) { 
     String CREATE_TABLE="CREATE TABLE "+TABLE_NAME+" ("+KEY_ID+" INTEGER PRIMARY KEY, "+KEY_FNAME+" TEXT)"; 
     db.execSQL(CREATE_TABLE); 

    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     db.execSQL("DROP TABLE IF EXISTS "+TABLE_NAME); 
     onCreate(db); 

    } 
} 

我想刪除數據庫中的字符串。

這是我正在做的從活動中刪除字符串。

public void delete(String del){ 
    SQLiteDatabase dataBase = mHelper.getWritableDatabase(); 
    String[] whereArgs = new String[] { del }; 
    dataBase.delete(
      DbHelper.TABLE_NAME, 
      DbHelper.KEY_FNAME + "=?" 
        +whereArgs, null); 
    mHelper.close(); 
} 

但我看到它執行上述方法的應用程序崩潰。

回答

1

你有兩個選擇:

  1. delete方法

    public void delete(String del) { 
        SQLiteDatabase dataBase = mHelper.getWritableDatabase(); 
        String[] whereArgs = new String[] { del }; 
        dataBase.delete(
         DbHelper.TABLE_NAME, 
         DbHelper.KEY_FNAME + "=" 
          +whereArgs, null); 
        mHelper.close(); 
    } 
    
  2. 移動whereArgs第三個參數的第二個參數中刪除問號@hfan建議

    public void delete(String del) { 
        SQLiteDatabase dataBase = mHelper.getWritableDatabase(); 
        String[] whereArgs = new String[] { del }; 
        dataBase.delete(
         DbHelper.TABLE_NAME, 
         DbHelper.KEY_FNAME + "=?", 
         whereArgs); 
        mHelper.close(); 
    } 
    
0

將whereArgs作爲delete()方法中的最後一個參數。

dataBase.delete(
     DbHelper.TABLE_NAME, 
     DbHelper.KEY_FNAME, 
       whereArgs); 
+0

我看到錯誤,如果我把ARRS作爲最後一個參數。 –

+0

類型SQLiteDatabase中的方法delete(String,String,String [])不適用於參數(String,String)..我看到這個 –

相關問題