android: SQLite更新數據

學習完了如何向表中添加數據,接下來咱們看看怎樣才能修改表中已有的數據。 SQLiteDatabase 中也是提供了一個很是好用的 update()方法用於對數據進行更新,這個方法 接收四個參數,第一個參數和 insert()方法同樣,也是表名,在這裏指定去更新哪張表裏的數據。第二個參數是 ContentValues 對象,要把更新數據在這裏組裝進去。第3、第四個參數android

用於去約束更新某一行或某幾行中的數據,不指定的話默認就是更新全部行。 那麼接下來咱們仍然是在 DatabaseTest 項目的基礎上修改,看一下更新數據的具體用法。數據庫

好比說剛纔添加到數據庫裏的第一本書,因爲過了暢銷季,賣得不是很火了,如今須要經過 下降價格的方式來吸引更多的顧客,咱們應該怎麼操做呢?首先修改 activity_main.xml 中的 代碼,以下所示:數組

 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"ide

android:orientation="vertical" >佈局

 

……學習

 

<Button android:id="@+id/update_data" android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Update data"this

/>xml

</LinearLayout>對象

佈局文件中的代碼就已經很是簡單了,就是添加了一個用於更新數據的按鈕。而後修改blog

MainActivity 中的代碼,以下所示:

 

public class MainActivity extends Activity {

 

private MyDatabaseHelper dbHelper;

 

@Override

protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main);

dbHelper = new MyDatabaseHelper(this, "BookStore.db", null, 2);

……

Button updateData = (Button) findViewById(R.id.update_data);

updateData.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

SQLiteDatabase db = dbHelper.getWritableDatabase();

 

ContentValues values = new ContentValues();

values.put("price", 10.99);

db.update("Book", values, "name = ?", new String[] { "The DaVinci Code" });

}

 

});

}

 

}

這裏在更新數據按鈕的點擊事件裏面構建了一個 ContentValues 對象,而且只給它指定 了一組數據,說明咱們只是想把價格這一列的數據更新成 10.99。而後調用了 SQLiteDatabase 的 update()方法去執行具體的更新操做,能夠看到,這裏使用了第3、第四個參數來指定具 體更新哪幾行。第三個參數對應的是 SQL 語句的 where 部分,表示去更新全部 name 等於? 的行,而?是一個佔位符,能夠經過第四個參數提供的一個字符串數組爲第三個參數中的每 個佔位符指定相應的內容。所以上述代碼想表達的意圖就是,將名字是 The Da Vinci Code 的這本書的價格改爲 10.99。

如今從新運行一下程序,界面如圖 6.23 所示。

圖   6.23

 

點擊一下 Update data 按鈕後,再次輸入查詢語句查看錶中的數據狀況,結果如圖 6.24所示。

圖   6.24

 

能夠看到,The Da Vinci Code 這本書的價格已經被成功改成 10.99 了。

相關文章
相關標籤/搜索