如何从数据库更新或删除

时间:2015-06-13 17:47:19

标签: android database sqlite

  

我是数据库的新手我刚创建了一个简单的数据库。请告诉我如何从这个数据库中删除一行以及如何从这个数据库中编辑一行:)   提前谢谢

  void createDatabase(String time, String day,String course,String room,String syl){

       database = openOrCreateDatabase("newDb",MODE_PRIVATE, null);


         sql = "CREATE TABLE IF NOT EXISTS examTab (Time VARCHAR ,Day VARCHAR ,Course VARCHAR ,Room VARCHAR ,Syl VARCHAR );"; 
         c = database.rawQuery(sql, null);

        database.execSQL(sql);


    String insertSql = "INSERT INTO examTab VALUES('"+time+"','"+day+"','"+course+"','"+room+"','"+syl+"');";
    database.execSQL(insertSql);


    database.close();


}

3 个答案:

答案 0 :(得分:2)

创建,删除,更新:SQLiteOpenHelper«数据库«Android

public DBAdapter(Context ctx) {
    this.context = ctx;
    DBHelper = new DatabaseHelper(context);
    }

private static class DatabaseHelper extends SQLiteOpenHelper {
DatabaseHelper(Context context) {
  super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
  try {
    db.execSQL(DATABASE_CREATE);
  } catch (SQLException e) {
    e.printStackTrace();
  }
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  Log.w(TAG, oldVersion + " to " + newVersion
      + ", which will destroy all old data");
  db.execSQL("DROP TABLE IF EXISTS contacts");
  onCreate(db);
}



public long insertContact(String name, String email) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(KEY_NAME, name);
    initialValues.put(KEY_EMAIL, email);
    return db.insert(DATABASE_TABLE, null, initialValues);
  }

  public boolean deleteContact(long rowId) {
    return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + rowId, null) > 0;
  }

  public Cursor getAllContacts() {
    return db.query(DATABASE_TABLE, new String[] { KEY_ROWID, KEY_NAME,
    KEY_EMAIL }, null, null, null, null, null);
  }

  public Cursor getContact(long rowId) throws SQLException {
    Cursor mCursor = db.query(true, DATABASE_TABLE, new String[] {
    KEY_ROWID, KEY_NAME, KEY_EMAIL }, KEY_ROWID + "=" + rowId,
    null, null, null, null, null);
    if (mCursor != null) {
      mCursor.moveToFirst();
    }
    return mCursor;
  }

  public boolean updateContact(long rowId, String name, String email) {
    ContentValues args = new ContentValues();
    args.put(KEY_NAME, name);
    args.put(KEY_EMAIL, email);
    return db.update(DATABASE_TABLE, args, KEY_ROWID + "=" + rowId,null)> 0;
  }
}

答案 1 :(得分:1)

对于DELETE操作,您可以在此处看到: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#delete(java.lang.String, java.lang.String, java.lang.String[])

在你的情况下,这应该成为:

database.delete("examTab", "condition", null);

对于UPDATE操作,您可以在此处查看方法: http://developer.android.com/reference/android/database/sqlite/SQLiteDatabase.html#update(java.lang.String, android.content.ContentValues, java.lang.String, java.lang.String[])

ContentValues cv = new ContentValues();
cv.put("COLUMN_1", newValue);
cv.put("COLUMN_2", newValue);
... and so on
database.update("examTab", cv, "condition", null);

PS:如果你添加“?”,whereArgs参数是有用的作为条件子句中的占位符以防止SQLInjection,但如果你不关心你可以把null

答案 2 :(得分:0)

DELETE examTab WHERE Time = x AND Day=y AND Course =z;
-- update Time for the rows meeting WHERE filter specified
UPDATE examTab
SET Time=x2
WHERE  Time = x AND Day=y AND Course =z;