2016-06-12 37 views
0

我想刪除行,但是當我寫deleteContact(查詢),並執行任何與我database.plese幫助發生如何用where子句刪除行?

這是我的代碼:

public class ContactDatabase extends SQLiteOpenHelper { 
     SQLiteDatabase db; 
     public static final String DATABASE_NAME="totalContact.db"; 
     public static final String TABLE_NAME="mecontact"; 
     public static final String NAME="name"; 
     public static final String PHONE="phone"; 


     public ContactDatabase(Context context) { 
      super(context, DATABASE_NAME, null, 1); 

     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 
      try { 
       db.execSQL("create table mecontact" + 
         "(_id integer primary key autoincrement, name text, phone text)"); 
      }catch(android.database.SQLException e){ 
        System.out.println("table create nhi ho rha"); 
      } 
     } 

    public void deleteContact(String d,int pos){ 
      db=this.getWritableDatabase(); 

      db.delete(TABLE_NAME, "name='" + d + "'"+" AND _id="+(pos), null); 

      db.close(); 
     } 

} 

回答

0

您只需要在表的id行刪除。

public void deleteContact(int pos){ 

db = this.getWritableDatabase(); 
db.delete(TABLE_NAME, ID_KEY + "= ?", new String[] {String.valueOf(pos) }); 
db.close(); 
} 
+0

是什麼?ID_KEY –

+0

您的ID列標題的靜態常量。 – SQLiteNoob

0

你可以讓你的代碼清洗器:

public int deleteContact(int id) { 
    db = this.getWritableDatabase(); 
    return db.delete(TABLE_NAME, "_id = ?", new String[]{String.valueOf(id)});  
} 

public void closeDB() { 
    db = this.getReadableDatabase(); 
    if (db != null && db.isOpen()) 
      db.close(); 
}