範例資料庫下載

資料庫的編輯
        資料庫的資料必須可以經過網頁新增或改變,否則許多功能,如留言板、個人資料、電子訂單、密碼設定等等就不能實現。前一單元我們已經學到如何檢視現有資料庫的資料,我們也從深入的方法解析中知道:事實上我們是用 SQL 語言和資料庫溝通,主要的指令是『select』!可以將資料從資料庫調閱出來;而編輯、刪除或新增資料一樣也是使用 SQL 與資料庫溝通,其指令分別是:
Update:更新(編輯之後)
Delete:刪除資料
Insert:插入(新增)
        與檢視資料時一樣,ASP.NET 2.0也提供了很多現成的工具箱物件,我們可以先不用寫程式就完成很多編輯資料庫的工作: 
1.建立新網站,將點名單資料庫存入App_Data目錄
2.建立AccessDataSource物件連到資料庫的任一個資料表,選進階如下圖:

3.完成後選一個GridView物件,連到以上Datasource
4.開啟智慧標籤,選取啟用編輯、啟用刪除等項目

5.執行程式後可以發現已經具備編輯與刪除資料的功能。

使用GridView雖然可以編輯或刪除資料,但是無法新增(Inset)資料。因為資料庫的資料新增是以資料錄,或說一筆一筆為單位增加的,我們必須使用可以編輯單一筆資料的物件進行,就是FormView物件了!
1.新增一個FormView物件
2.設定連結到前述的AccessDataSource
3.進行偵錯,選新增即可進入編輯新資料畫面。
4.編輯完閉按插入鍵即可新增一筆資料

SQL指令的解析
或許直接學會SQL的新增、刪除與編輯指令有點困難,但是別忘了,資料庫工具箱中的物件其實都是自動產生SQL功能的機器,我們從物件產生的原始檔終究可以學會或者複製很多現成的SQL指令,下圖就是一個例子,當我們指定要的時候,AccessDataSource的原始碼變成這樣:

其中的SelectCommand在上節課中已經介紹過,同學也已經親身體驗,直接輸入SQL搜尋資料。
其他的三個Command就是刪除、新增與編輯的SQL語句範例,問號的部份就是資料變數,我們可以直接用TextBox與Button輸入語句來實驗增、刪或編輯資料庫的資料,只要將問號部分換成我們需要的實際資料即可!

在實做之前,請注意到幾個指令的主要特徵提示如下:
1. Delete以整筆資料為單位,所以是Delete From...中間沒有『項目』的選擇,和Select不同
2. Insert必須配合 Into,寫成 Insert Into [資料表] (項目...) Values(資料...)
3. Update必須配合Set使用,與Insert的項目資料排列方式不同!須寫成 Set [項目] = '資料'...
SQL指令實驗
1.建立一個新網站,在網頁上佈置如下圖,將DataSource連到某張點名單資料表。

2.在Button_Click事件副程式中加入程式碼:
 AccessDataSource1.UpdateCommand = TextBox1.Text  '以文字方塊內容為Update指令
 AccessDataSource1.Update()  '執行更新資料庫內容
 GridView1.DataBind()  '將GridView的內容依據最新資料庫內容更新
3.執行程式,寫入Update指令如:
    Update [資料表名稱] set [項目]='資料' Where [項目]='資料'
譬如:Update [VHDL設計] set  [姓名] ='恐龍' Where [學號] ='123'
可以將學號為123的資料姓名改成恐龍!

模仿上例建立Delete測試,語法如:
    Delete From [資料表] Where [項目] = '資料'
程式碼:
 Me.AccessDataSource1.DeleteCommand = TextBox2.Text
 Me.AccessDataSource1.Delete()
 GridView1.DataBind()

模仿上例建立Insert測試,語法如:
     Insert Into [資料表] ([學號], [姓名], [班級]) Values('123', '恐龍', '資優班')
程式碼:
 Me.AccessDataSource1.InsertCommand = TextBox2.Text
 Me.AccessDataSource1.Insert()
 GridView1.DataBind()

作業:
1.SQL語言中要新增、刪除與更新(編輯)資料的指令為何?
2.如何設定DataSource使它具備增刪編輯資料庫的功能?(操作步驟)
3.新增一筆資料需要使用什麼資料物件(控制項)進行?
4.寫出 Insert 指令的標準語法。
5.寫出 Update 指令的典型語法。
6.寫出 Delete 指令的標準語法。