2011-01-19 5 views
-1

나는 선택을 할 수있는 MyDBAdapter 클래스를 가지고 있지만, 나 또한 내가 할 방법을 모르는Android에서 MyDbAdapter를 사용하여 쿼리를 삭제할 수 있습니까? 나는이 매우 안돼서,

DELETE FROM user Where email="given value by variable String"

는 안드로이드와 MyDBAdapter에서 삭제해야 누군가 내 클래스를 완료하여 이메일로 사용자를 삭제하는 기능을 추가 할 수 있습니까?

public class MyDbAdapter { 

    private static final String TAG = "NotesDbAdapter"; 
    private DatabaseHelper mDbHelper; 
    private SQLiteDatabase mDb; 
    private static final String DATABASE_NAME = "gpslocdb"; 
    private static final String PERMISSION_TABLE_CREATE = "CREATE TABLE permission (fk_email1 varchar, fk_email2 varchar, validated tinyint, hour1 time default '08:00:00', hour2 time default '20:00:00', date1 date, date2 date, weekend tinyint default '0', fk_type varchar, PRIMARY KEY (fk_email1,fk_email2))"; 
    private static final String USER_TABLE_CREATE = "CREATE TABLE user (email varchar, password varchar, fullName varchar, mobilePhone varchar, mobileOperatingSystem varchar, PRIMARY KEY (email))"; 

    private static final int DATABASE_VERSION = 2; 

    private final Context mCtx; 

    private static class DatabaseHelper extends SQLiteOpenHelper { 

     DatabaseHelper(Context context) { 
      super(context, DATABASE_NAME, null, DATABASE_VERSION); 
     } 

     @Override 
     public void onCreate(SQLiteDatabase db) { 
      db.execSQL("DROP TABLE IF EXISTS user"); 
      db.execSQL("DROP TABLE IF EXISTS permission"); 
      db.execSQL(PERMISSION_TABLE_CREATE); 
      db.execSQL(USER_TABLE_CREATE); 
     } 

     @Override 
     public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
      //db.execSQL("DROP TABLE IF EXISTS user"); 
      //db.execSQL("DROP TABLE IF EXISTS permission"); 
      //onCreate(db); 
     } 

     @Override 
     public void onOpen(SQLiteDatabase db) { 
      super.onOpen(db); 
      //onCreate(db); 
     } 

     public void clearDb(SQLiteDatabase db) { 
      db.execSQL("DROP TABLE IF EXISTS user"); 
      db.execSQL("DROP TABLE IF EXISTS permission"); 
      onCreate(db); 
     } 

    } 

    /** 
    * Constructor - takes the context to allow the database to be 
    * opened/created 
    * 
    * @param ctx the Context within which to work 
    */ 
    public MyDbAdapter(Context ctx) { 
     this.mCtx = ctx; 
    } 

    /** 
    * Open the database. If it cannot be opened, try to create a new 
    * instance of the database. If it cannot be created, throw an exception to 
    * signal the failure 
    * 
    * @return this (self reference, allowing this to be chained in an 
    * initialization call) 
    * @throws SQLException if the database could be neither opened or created 
    */ 
    public MyDbAdapter open() throws SQLException { 
     mDbHelper = new DatabaseHelper(mCtx); 
     mDb = mDbHelper.getWritableDatabase(); 
     return this; 
    } 

    public void close() { 
     //clearDB(); 
     mDbHelper.close(); 
    } 

    public long createUser(String email, String password, String fullName, String mobilePhone, String mobileOperatingSystem) { 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put("email", email); 
     initialValues.put("password", password); 
     initialValues.put("fullName", fullName); 
     initialValues.put("mobilePhone", mobilePhone); 
     initialValues.put("mobileOperatingSystem", mobileOperatingSystem); 
     return mDb.insert("user", null, initialValues); 
    } 

    public long createPermission(String email1, String email2, String validated, String hour1, String hour2, 
           String date1, String date2, String weekend, String fk_type) { 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put("fk_email1", email1); 
     initialValues.put("fk_email2", email2); 
     initialValues.put("validated", validated); 
     initialValues.put("hour1", hour1); 
     initialValues.put("hour2", hour2); 
     initialValues.put("date1", date1); 
     initialValues.put("date2", date2); 
     initialValues.put("weekend", weekend); 
     initialValues.put("fk_type", fk_type); 
     return mDb.insert("permission", null, initialValues); 
    } 

    public void clearDB() { 
     mDbHelper.clearDb(mDb); 
    } 

    public Cursor fetchAllUsers() { 

     return mDb.query("user", new String[]{"email", "password", "fullName", "mobilePhone", "mobileOperatingSystem"}, null, null, null, null, null); 
    } 

    public Cursor fetchAllPermissions() { 

     return mDb.query("permission", new String[]{"fk_email1", "fk_email2", "validated", "hour1", "hour2", "date1", "date2", "weekend", "fk_type"}, null, null, null, null, null); 
    } 

    public Cursor fetchUser(String email) throws SQLException { 

     Cursor mCursor = mDb.query(true, "user", new String[]{"email", "password", "fullName", "mobilePhone", "mobileOperatingSystem"} 
       , "email" + "=" + email, null, null, null, null, null); 
     if (mCursor != null) { 
      mCursor.moveToFirst(); 
     } 
     return mCursor; 
    } 

    public void deleteUser(String email) throws SQLException { 
     Delete From permission Where fk_email1 = '[email protected]' and fk_email2 = '[email protected]' 
    } 

    public List<Friend> retrieveAllFriends() { 
     List<Friend> friends = new ArrayList<Friend>(); 
     Cursor result = fetchAllUsers(); 
     if (result.moveToFirst()) { 
      do { 
       friends.add(new Friend(result.getString(result.getColumnIndexOrThrow("email")), result.getString(result.getColumnIndexOrThrow("password")), result.getString(result.getColumnIndexOrThrow("fullName")), result.getString(result.getColumnIndexOrThrow("mobilePhone")), result.getString(result.getColumnIndexOrThrow("mobileOperatingSystem")))); 
      } while (result.moveToNext()); 
     } 
     return friends; 
    } 

    public List<Permission> retrieveAllPermissions() { 
     List<Permission> permissions = new ArrayList<Permission>(); 
     Cursor result = fetchAllPermissions(); 
     if (result.moveToFirst()) { 
      do { 
       permissions.add(new Permission(result.getString(result.getColumnIndexOrThrow("fk_email1")), 
         result.getString(result.getColumnIndexOrThrow("fk_email2")), 
         Integer.parseInt(result.getString(result.getColumnIndexOrThrow("validated"))), 
         result.getString(result.getColumnIndexOrThrow("hour1")), 
         result.getString(result.getColumnIndexOrThrow("hour2")), 
         result.getString(result.getColumnIndexOrThrow("date1")), 
         result.getString(result.getColumnIndexOrThrow("date2")), 
         Integer.parseInt(result.getString(result.getColumnIndexOrThrow("weekend"))), 
         result.getString(result.getColumnIndexOrThrow("fk_type")))); 
      } while (result.moveToNext()); 
     } 
     return permissions; 
    } 

} 

답변

2

mDb.delete(DATABASE_NAME, "email" + "=" + value_to_delete, null);

0

제 (예로 사용) 다음을 추가 :

@Override 
public int delete(Uri uri, String where, String[] whereArgs) { 
    SQLiteDatabase db = mOpenHelper.getWritableDatabase(); 
    int count; 
    String id; 
    switch (sUriMatcher.match(uri)) { 
     case MATCHES: 
      count = db.delete(DBMatches.TABLENAME, where, whereArgs); 
      break; 
     case MATCH_ID: 
      id = uri.getPathSegments().get(1); 
      count = db.delete(DBMatches.TABLENAME, DBMatches._ID + "=" + id 
        + (!TextUtils.isEmpty(where) ? " AND (" + where + ')' : ""), whereArgs); 
      break; 
     default: 
      throw new IllegalArgumentException("Unknown URI " + uri); 
    } 

    getContext().getContentResolver().notifyChange(uri, null); 
    return count; 
} 

내 클래스
관련 문제