使用BindingSource連接資料庫
最近在討論區看到滿多有關資料庫使用上的問題,有部分問題討論之後還是覺得怪怪的,網友反應的狀態測試不太出來;所以我想乾脆就整理一些簡單的使用相關方法給大家參考,希望能夠幫助大家更了解一些;本篇是第一篇,算是入門吧。
首先我們要建立資料庫,在這邊為了方便測試,建議您也建立跟筆者相同結構的資料庫;資料庫部分是使用mdb(Access2000~2003)的類型,資料表結構如下
資料庫名稱筆者是設定為myDB.mdb
接下來請建立新的"Windows應用程式"專案,這裡筆者是將專案名稱設定為Test,專案建立完成之後,您會看到預設的Form1表單產生了,再來因為我們會用到BindingSource,所以請到"工具箱"裡面找到"資料"標籤,展開之後你會看到下面這些東西

我們先把後面需要用到的東西拉出來(你可以拖曳到Form上面或是滑鼠連點兩下再來調整大小都可以),請把下面的元件加進來
好了之後再從"通用控制項"的標籤中拉出一個Combobox,會用到的就是這些東西了;首先我們就來設定BindingSource吧!
先用滑鼠點一下畫面下方的BindingSource1,之後到"屬性"的地方,你會看到DataSource的屬性,像下圖這樣

之後點選上方超連結的"加入專案資料來源",之後就會出現"資料來源組態精靈"了,下面筆者把各步驟的圖片截取下來;首先是選擇資料類型,這邊我們是要把資料庫加到專案中,所以選擇"資料庫",像下圖

點選下一步,之後會選擇資料連接的設定,請點選新增連接的按鈕,之後你會看到像下圖的設定畫面

這裡因為我們使用的是Access的資料庫檔案,所以選擇Access(紅色框框的部分),而下方"永遠使用這個選項"筆者的習慣是每次都自己選,你可以自由決定你想要的方式;之後點選下一步會出現"加入連接"的表單,請點選"瀏覽"的按鈕來加入資料庫檔案,像下圖

檔案加入了之後可以點選"測試連接"來測試看看是否能夠成功的連接到我們的資料庫檔案

再來,點選"完成"的按鈕,便會跳回原先"選擇資料連接"的表單,這時候你可以看到連線字串已經產生了

接下來你會看到一個訊息,提示你目前資料庫還沒有加到專案中,要不要自動加入,這邊要選擇"是"

再來會出現儲存連線字串的對話框,這邊要選擇"是",把連接字串儲存起來方便日後使用;

到這裡接進完成了,再來會出現"資料來源組態"的表單,在這裡我們只會用到資料表相關的東西,所以我們把資料表的部分勾選

這樣子BindingSource部分的資料來源就設定好了;再來我們回到BindingSource的屬性視窗,剛剛我們是設定DataSource屬性,現在我們要設定DataMember屬性,像下圖

這邊筆者會把People資料表中的資料填到DataGridView裡面,所以要選擇People資料表;完成之後你會在Form1下面看到新產生的PeopleTableAdapter這就是我們的資料配接器了。
好,我們把資料填到DataGridView裡面,這邊先點選DataGridView1,之後在右上角會看到Smart Tag,點選之後資料來源設定為BindingSource1,如下圖

之後會看到DataGridView上面出現欄位的名稱了,像是下面這樣

到這裡你可以執行看看程式出來的效果;好了現在DataGridView上面可以顯示資料了,那麼如果我不想要一次顯示所有的欄位或是在標題的地方我不想顯示出來的是我欄位的名稱,那麼該怎麼辦呢?
那麼我們就再點選一次DataGridView,點Smart Tag(右上角的小箭頭),之後選擇編輯資料行,你會看到像下面的對話視窗

不想要顯示的欄位就按下移除的按鈕把它移除掉就可以了,標題列的文字部分我們可以設定HeaderText的屬性,那麼就會照你所設定的去顯示了。
到這邊我們完成了簡單的利用BindingSource連接資料來源的設定,下一篇預計會再介紹搭配BindingNavigator來做導覽的功能,以及基本的新增、刪除、儲存作業,敬請期待嚕。
首先我們要建立資料庫,在這邊為了方便測試,建議您也建立跟筆者相同結構的資料庫;資料庫部分是使用mdb(Access2000~2003)的類型,資料表結構如下
- People資料表
資料表欄位設定為SEQ(PK,自動編號),pName(文字,20),pID(文字,10),pPhone(文字,10),pDepartmentID(文字,3) - Department資料表
資料表欄位設定為ID(PK,文字,3),dName(文字,20)
資料庫名稱筆者是設定為myDB.mdb
接下來請建立新的"Windows應用程式"專案,這裡筆者是將專案名稱設定為Test,專案建立完成之後,您會看到預設的Form1表單產生了,再來因為我們會用到BindingSource,所以請到"工具箱"裡面找到"資料"標籤,展開之後你會看到下面這些東西

我們先把後面需要用到的東西拉出來(你可以拖曳到Form上面或是滑鼠連點兩下再來調整大小都可以),請把下面的元件加進來
- BindingSource
- DataGridView
- BindingNavigator
好了之後再從"通用控制項"的標籤中拉出一個Combobox,會用到的就是這些東西了;首先我們就來設定BindingSource吧!
先用滑鼠點一下畫面下方的BindingSource1,之後到"屬性"的地方,你會看到DataSource的屬性,像下圖這樣

之後點選上方超連結的"加入專案資料來源",之後就會出現"資料來源組態精靈"了,下面筆者把各步驟的圖片截取下來;首先是選擇資料類型,這邊我們是要把資料庫加到專案中,所以選擇"資料庫",像下圖

點選下一步,之後會選擇資料連接的設定,請點選新增連接的按鈕,之後你會看到像下圖的設定畫面

這裡因為我們使用的是Access的資料庫檔案,所以選擇Access(紅色框框的部分),而下方"永遠使用這個選項"筆者的習慣是每次都自己選,你可以自由決定你想要的方式;之後點選下一步會出現"加入連接"的表單,請點選"瀏覽"的按鈕來加入資料庫檔案,像下圖

檔案加入了之後可以點選"測試連接"來測試看看是否能夠成功的連接到我們的資料庫檔案

再來,點選"完成"的按鈕,便會跳回原先"選擇資料連接"的表單,這時候你可以看到連線字串已經產生了

接下來你會看到一個訊息,提示你目前資料庫還沒有加到專案中,要不要自動加入,這邊要選擇"是"

再來會出現儲存連線字串的對話框,這邊要選擇"是",把連接字串儲存起來方便日後使用;

到這裡接進完成了,再來會出現"資料來源組態"的表單,在這裡我們只會用到資料表相關的東西,所以我們把資料表的部分勾選

這樣子BindingSource部分的資料來源就設定好了;再來我們回到BindingSource的屬性視窗,剛剛我們是設定DataSource屬性,現在我們要設定DataMember屬性,像下圖

這邊筆者會把People資料表中的資料填到DataGridView裡面,所以要選擇People資料表;完成之後你會在Form1下面看到新產生的PeopleTableAdapter這就是我們的資料配接器了。
好,我們把資料填到DataGridView裡面,這邊先點選DataGridView1,之後在右上角會看到Smart Tag,點選之後資料來源設定為BindingSource1,如下圖

之後會看到DataGridView上面出現欄位的名稱了,像是下面這樣

到這裡你可以執行看看程式出來的效果;好了現在DataGridView上面可以顯示資料了,那麼如果我不想要一次顯示所有的欄位或是在標題的地方我不想顯示出來的是我欄位的名稱,那麼該怎麼辦呢?
那麼我們就再點選一次DataGridView,點Smart Tag(右上角的小箭頭),之後選擇編輯資料行,你會看到像下面的對話視窗

不想要顯示的欄位就按下移除的按鈕把它移除掉就可以了,標題列的文字部分我們可以設定HeaderText的屬性,那麼就會照你所設定的去顯示了。
到這邊我們完成了簡單的利用BindingSource連接資料來源的設定,下一篇預計會再介紹搭配BindingNavigator來做導覽的功能,以及基本的新增、刪除、儲存作業,敬請期待嚕。
留言