使用c#開發(fā)Windows數(shù)據(jù)庫應(yīng)用程序.ppt
《使用c#開發(fā)Windows數(shù)據(jù)庫應(yīng)用程序.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《使用c#開發(fā)Windows數(shù)據(jù)庫應(yīng)用程序.ppt(23頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
第七章使用c 開發(fā)Windows數(shù)據(jù)庫應(yīng)用程序 7 1數(shù)據(jù)綁定 數(shù)據(jù)綁定是指數(shù)據(jù)源元素與圖形界面的接口技術(shù) 在應(yīng)用程序中使用數(shù)據(jù)綁定減少了為從數(shù)據(jù)對(duì)象檢索數(shù)據(jù)而必須編寫的代碼量 ADO NET為圖形控件提供了整潔的數(shù)據(jù)綁定結(jié)構(gòu) 數(shù)據(jù)源可以是從數(shù)組到數(shù)據(jù)庫中的一組記錄 或者是實(shí)現(xiàn)IEnumerable接口的任何對(duì)象 如DataView對(duì)象 窗體綁定有兩種方式 簡(jiǎn)單數(shù)據(jù)綁定和復(fù)雜數(shù)據(jù)綁定 Windows數(shù)據(jù)綁定控件能夠綁定數(shù)據(jù) 因?yàn)锽inding類提供了這樣的功能 System Windows Forms Binding 這個(gè)類由 NETFramework提供 負(fù)責(zé)在每個(gè)控件屬性和數(shù)據(jù)源中的數(shù)據(jù)元素之間創(chuàng)建簡(jiǎn)單的綁定 textBox1 DataBindings Add Text ds Employees FirstName 控件DataBinding屬性可以使用Add方法添加其中的每個(gè)屬性 Add方法有三個(gè)參數(shù) 第一個(gè)參數(shù)是控件屬性的名稱 第二個(gè)參數(shù)是下列任意類 或者實(shí)現(xiàn)下列任意接口的類的實(shí)例 第三個(gè)參數(shù)描述數(shù)據(jù)源中的數(shù)據(jù)成員 它必須是能轉(zhuǎn)化為標(biāo)量值的字符串文字 表7 1可用于Binding類構(gòu)造函數(shù)的第二個(gè)參數(shù)的類 如果想顯示聲明Binding對(duì)象 可用下面的代碼實(shí)現(xiàn) BindingnewBind newBinding Text ds Employee FirstName textBox1 DataBindings Add newBind 如果想把兩個(gè)或多個(gè)控件綁定到相同的數(shù)據(jù)元素 可以使用這種方法 textBox1 DataBindings Add newBind Label1 DataBindings Add newBind 實(shí)現(xiàn)把TextBox控件的Text屬性綁定到表中的數(shù)據(jù)元素上 將TextBox和Label控件綁定到表中相同的列 7 1 1簡(jiǎn)單數(shù)據(jù)綁定 簡(jiǎn)單數(shù)據(jù)綁定是指每個(gè)控件屬性與數(shù)據(jù)源的單一元素之間的一對(duì)一關(guān)系 簡(jiǎn)單數(shù)據(jù)綁定可用于一次顯示一個(gè)值的控件 如TextBox的Text屬性 把它綁定到DataTable中的一個(gè)列 如果修改了底層的數(shù)據(jù)源 則調(diào)用控件的Refresh方法更新綁定過的數(shù)據(jù)源 反應(yīng)所發(fā)生的變化 textBoxID DataBingdings Add Text custList CustomerID textBoxTitle DataBingdings Add Text custList ContactTitle textBoxLastName DataBingdings Add Text custList ContactName textBoxFirstName DataBingdings Add Text custList CompanyName textBoxAddress DataBingdings Add Text custList Address 將一組TextBox控件上的Text屬性綁定到作為客戶列表存儲(chǔ)的Customer對(duì)象的屬性 7 1 2復(fù)雜數(shù)據(jù)綁定 復(fù)雜數(shù)據(jù)綁定指將控件綁定到集合 而不是將控件綁定到集合內(nèi)的單個(gè)項(xiàng) 下面的例子 將ComboBox綁定到State對(duì)象的一個(gè)數(shù)組 publicstructState privatestringshortName longName publicState stringlongName stringshortName this shortName shortName this longName longName publicstringShortName get returnshortName publicstringLongName get returnLongName privateState States newState newState Alabama AL newState Washington WA comboBoxState DataSource States comboBoxState DisplayMenber LongName 通常 在數(shù)據(jù)綁定窗體中 ComboBox用于查找值 7 2數(shù)據(jù)源的類型 7 2 1數(shù)組作為數(shù)據(jù)源在大多數(shù)情況下 Array最適合于存儲(chǔ)和檢索一致的數(shù)據(jù) 數(shù)組在運(yùn)行時(shí)支持對(duì)數(shù)據(jù)的處理 且容易在代碼中通過ICollection接口使用 privatevoidForm1 load objectsender System EventArgse string book newstring 操作系統(tǒng) 2005年月 25 00元 textBox1 DataBinding Add Text book null 上面的代碼綁定到TextBox的Text屬性上的一個(gè)字符串?dāng)?shù)組 把Add 方法的第三個(gè)參數(shù)值指定為null 是因?yàn)閿?shù)組沒有數(shù)據(jù)成員或者可進(jìn)一步轉(zhuǎn)換為單個(gè)標(biāo)量值的導(dǎo)航路經(jīng) 為了能夠遍歷操作數(shù)組 可以使用綁定管理器的Position屬性 BindingManagerBasebManager this BindingContext book null bManager Positon 1 7 2 2數(shù)據(jù)表作為數(shù)據(jù)源 DataTable類實(shí)現(xiàn)IListSource接口 DataTable數(shù)據(jù)源既可用于簡(jiǎn)單綁定例子 也可用與復(fù)雜綁定例子 把DataTable綁定到控件可以有兩種方式 一種把整個(gè)表綁定到支持復(fù)雜綁定的控件上 另一種是把單個(gè)的列綁定到支持簡(jiǎn)單綁定的控件上 把ListBox控件綁定到了從填充過的DataSet提取的DataTable對(duì)象上 代碼如下 DataTablemyTable ds Tables Employee listBox1 DataSource myTable listBox1 DisplayMember FirstName listBox控件的DataSource屬性采用集合對(duì)象myTable作為數(shù)據(jù)源 DisplayMember屬性采用數(shù)據(jù)源內(nèi)的數(shù)據(jù)成員 用數(shù)據(jù)填充ListBox TextBox1 DataBindings Add Text myTable FirstName 簡(jiǎn)單的數(shù)據(jù)綁定 7 2 3數(shù)據(jù)集作為數(shù)據(jù)源 數(shù)據(jù)集DataSet類實(shí)現(xiàn)IlistSource接口 DataSet的數(shù)據(jù)綁定快速而直觀 而且可以實(shí)現(xiàn)與數(shù)據(jù)源斷開連接 這使它成為數(shù)據(jù)綁定控件的重要數(shù)據(jù)源之一 下面的代碼把DataSet綁定到一個(gè)頁面的兩個(gè)textBox控件上 這些代碼放在Form Load事件處理程序中 填充數(shù)據(jù)集da Fill ds Products 首先 用Northwind數(shù)據(jù)庫的Products表中的數(shù)據(jù)填充DataSet 接著把特定的字段綁定到兩個(gè)TextBox控件上 把textBox1的Text綁定到ProductName列上textBox1 DataBindings Add Text ds Products ProductName 把textBox2的Text綁定到UnitPrice列上textBox2 DataBindings Add Text ds Products UnitPrice 7 2 4數(shù)據(jù)視圖作為數(shù)據(jù)源 DataView類實(shí)現(xiàn)ItypeList接口 提供DataTable的可定制視圖 綁定到DataView對(duì)象像綁定到DataTable對(duì)象一樣簡(jiǎn)單 因?yàn)镈ataView提供了DataTable內(nèi)容的動(dòng)態(tài)視圖 通過實(shí)現(xiàn)定制排序和篩選 使用DataView可以對(duì)所顯示的數(shù)據(jù)提供進(jìn)一步的控制 填充數(shù)據(jù)集da Fill ds Employee DataTablemyTable ds Tables Employees 創(chuàng)建一個(gè)數(shù)據(jù)視圖DataViewdv newDataView myTable County USA FirstName DataViewRowState CurrentRows 綁定到FirstName列textBox1 DataBindings Add Text dv FirstName 綁定到LastName列textBox2 DataBindings Add Text dv LastName 首先用數(shù)據(jù)填充DataSet 接著創(chuàng)建DataTable 然后用DataView對(duì)象提取數(shù)據(jù) 從DataTable對(duì)象的表中選擇在美國的所有雇員的姓名列 最后進(jìn)行數(shù)據(jù)綁定 例 Binding stringCString Provider Microsoft Jet OLEDB 4 0 DataSource E shishuo 課件 C 師碩 第五部分c 數(shù)據(jù)庫編程 student MDB 設(shè)置連接字符stringSQLStr select FromStudent 設(shè)置SQL命令字符串OleDbConnectionMycon newOleDbConnection CString 創(chuàng)建連接對(duì)象Mycon Open 打開連接OleDbCommandMyCom newOleDbCommand 創(chuàng)建Command對(duì)象MyCom Connection Mycon 通過Mycon連接對(duì)象操作數(shù)據(jù)庫MyCom CommandType CommandType Text 設(shè)置命令類型MyCom CommandText SQLStr 設(shè)置要執(zhí)行的命令OleDbDataAdapterMydataAdapter newOleDbDataAdapter 生成OleDbDataAdapter對(duì)象MydataAdapter SelectCommand MyCom 設(shè)置MyDataAdapter對(duì)象的SelectCommand屬性值為創(chuàng)建的OleDbCommand對(duì)象名DataSetMyDs newDataSet 產(chǎn)生新的數(shù)據(jù)集MydataAdapter Fill MyDs student 填充數(shù)據(jù)集 把六個(gè)TextBox控件與數(shù)據(jù)集中的響應(yīng)字段綁定在一起this textBox1 DataBindings Add Text MyDs student StudentID this textBox2 DataBindings Add Text MyDs student Name this textBox3 DataBindings Add Text MyDs student Sex this textBox4 DataBindings Add Text MyDs student ClassID this textBox5 DataBindings Add Text MyDs student Birthday this textBox6 DataBindings Add Text MyDs student Address Navigator this BindingContext MyDs student 用Navigator綁定student表 7 3使用DataGrid顯示數(shù)據(jù) Windows窗體DataGrid控件在一系列行和列中顯示數(shù)據(jù) 最簡(jiǎn)單的情況就是當(dāng)網(wǎng)絡(luò)綁定到具有單個(gè)表的數(shù)據(jù)源時(shí) 在這種情況下 數(shù)據(jù)顯示在簡(jiǎn)單的行和列中 就像在電子表格中一樣 如果DataGrid綁定到具有多個(gè)相關(guān)表的數(shù)據(jù) 并且在網(wǎng)格上啟用了導(dǎo)航功能 則網(wǎng)格將在每行中都顯示展開器 展開器允許從父表移動(dòng)到子表 單擊某個(gè)節(jié)點(diǎn)會(huì)顯示子表 而單擊 后退 按鈕會(huì)顯示原始的父表 這種方式下 網(wǎng)格會(huì)顯示各表間的分層關(guān)系 DataGrid可以為數(shù)據(jù)集提供用戶界面 相關(guān)表之間的導(dǎo)航功能以及豐富的格式設(shè)置和編輯功能 DataGrid以網(wǎng)格的形式顯示數(shù)據(jù) 同時(shí)還能完成數(shù)據(jù)的添加 刪除和更改操作 為了使DataGrid控件能夠顯示數(shù)據(jù) 需要將該控件與數(shù)據(jù)集綁定起來 綁定方法有設(shè)計(jì)時(shí)綁定和運(yùn)行時(shí)綁定兩種 設(shè)計(jì)時(shí)綁定需要設(shè)置該控件的DataSource屬性和DataMenber屬性 把DataSource屬性設(shè)置為要綁定的數(shù)據(jù)集名稱 通常通過下拉列表來選擇 把DataMenber屬性設(shè)置為響應(yīng)數(shù)據(jù)集中的數(shù)據(jù)表 也可通過下拉列表來選擇 運(yùn)行時(shí)綁定可通過調(diào)用DataGrid控件的SetDataBinding方法來實(shí)現(xiàn) 格式 publicvoidSetDataBinding objectdataSource stringdataMenber 功能 在運(yùn)行時(shí)設(shè)置DataGrid控件的DataSource和DataMenber屬性 參數(shù)dataSource將作為DataGrid控件的DataSource屬性值 參數(shù)dataMenber將作為DataGrid控件的DataMenber屬性值 使用DataGrid控件可以進(jìn)行數(shù)據(jù)行的增加 刪除和數(shù)據(jù)列的修改等操作 但只更改的是數(shù)據(jù)集中的數(shù)據(jù) 并沒有更改實(shí)際數(shù)據(jù)源中的數(shù)據(jù) 要想更改數(shù)據(jù)源中的數(shù)據(jù)還需要調(diào)用DataAdapter控件的Update方法 7 4應(yīng)用實(shí)例- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 使用 c# 開發(fā) Windows 數(shù)據(jù)庫 應(yīng)用程序
鏈接地址:http://m.appdesigncorp.com/p-5186920.html