使用C-開發Windows數據庫應用程序_第1頁
使用C-開發Windows數據庫應用程序_第2頁
使用C-開發Windows數據庫應用程序_第3頁
使用C-開發Windows數據庫應用程序_第4頁
使用C-開發Windows數據庫應用程序_第5頁
已閱讀5頁,還剩7頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第8章使用C#開發Windows數據庫應用程序

簡單數據綁訂復雜數據綁訂數據源的類型DataGrid的使用Windows應用程序開發實例

本章要點8.1數據綁定數據綁定是指數據源元素與圖形界面的接口技術,如使用TextBox控件綁定到表中的單個值。窗體控件可以按照兩種方式綁定數據:簡單數據綁定和復雜數據綁定。Windows數據綁定控件(如Label、Button或TextBox能夠綁定數據,因為Binding類提供了這樣的功能(System.Windows.Forms.Binding),這個類由.NETFramework提供,負責在每個控件屬性和數據源中的數據元素之間創建簡單的綁定。如:textBox1.DataBindings.Add(″Text″,da,″Employees.FirstName″);控件的DataBindings屬性可以使用Add方法添加其中的每個屬性。Add方法有三個參數。第一個參數是控件屬性的名稱,如TextBox控件的Text屬性或者DataGrid控件的DataSource屬性。第二個參數是下列任意類,或者實現下列任意接口的類的實例,如表8-1列出幾個接口及實現這些接口的類。第三個參數描述數據源中的數據成員。它是必須能轉化為標量值的字符串文字,如使用DataSet時要根據表名稱所選的列。表8-1可用于Binding類構造函數的第二個參數的類接口實現接口的一些類ICollectionArray,BitArrayIListSourceDataSet,DataTableITypedListDataView,DataViewManager如果想顯式聲明Binding對象,則可以使用類似下面的代碼,例如,想把TextBox控件的Text屬性綁定到表中的數據元素上。BindingnewBind=newBinding(″Text″,ds,″Employees.FirstName″);textBox1.DataBindings.Add(newBind);8.1.1簡單數據綁定簡單數據綁定是指每個控件屬性與數據源的單一元素之間的一對一關系。下面的例子演示簡單數據綁定,將一組TextBox控件上的Text屬性綁定到作為客戶列表存儲的Customer對象的屬性。在控件上使用DataBindings集合添加簡單數據綁定。textBoxID.DataBindings.Add("Text",custList,"CustomerID");textBoxTitle.DataBindings.Add("Text",custList,"ContactTitle");textBoxLastName.DataBindings.Add("Text",custList,"ContactName");textBoxFirstName.DataBindings.Add("Text",custList,"CompanyName");textBoxAddress.DataBindings.Add("Text",custList,"Address");每個TextBox.Text都綁定到當前Customer對象,如同BindingContext進行維護一樣。若要更改當前對象,可使用BindingContext遞增或遞減集合的Position屬性。例如,通過按如下所示處理按鈕的Click事件實現MoveNext按鈕。privatevoidbuttonMoveNext_Click(objectsender,System.EventArgse){this.BindingContext[custList].Position++;}每當位置更改時,BindingContext引發一個事件。this.BindingContext[custList].PositionChanged+=newSystem.EventHandler(customer_PositionChanged);privatevoidcustomer_PositionChanged(objectsender,System.EventArgse){textBoxPosition.Text="Record"+(this.BindingContext[custList].Position+1)+

"of"+custList.Length;}8.1.2復雜數據綁定

復雜數據綁定指將控件綁定到集合(而不是將控件綁定到集合內的單個項)。下面的代碼將ComboBox綁定到State對象的一個數組。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.DisplayMember="LongName";8.2數據源的類型8.2.1數組作為數據源在大多數情況下,Array最適合于存儲和檢索一致的數據。數組在運行時支持對數據的處理,且容易在代碼中通過ICollection接口使用。例如,privatevoidForm1_Load(objectsender,System.EventArgse){String[]book=newString[]{"操作系統","2005年4月","25.00元"};textBox1.DataBindings.Add("Text",book,null);}例如編寫如下代碼可以實現數組元素遍歷的功能:BindingManagerBasebManager=this.BindingContext[book,null];bManager.Position+=1;8.2.2數據表作為數據源DataTable類實現IListSource接口。DataTable數據源既可用于簡單綁定例子,也可用于復雜綁定例子。把DataTable綁定到控件可以有兩種方式,一種是把整個表綁定到支持復雜綁定的控件上(可以一次顯示多個記錄的控件),另一種是把單個的列綁定到支持簡單綁定的控件上。下面這個例子把ListBox控件綁定到了從填充過的DataSet提取的DataTable對象上,如下面的代碼所示:DataTablemyTable=ds.Tables[″Employees″];listBox1.DataSource=myTable;listBox1.DisplayMember=″FirstName″;下面的代碼通過給DataBindings集合添加綁定以及將DataTable中的列名作為數據成員,把文本框綁定到DataTable上實現了簡單數據綁定。textBox1.DataBindings.Add(″Text″,myTable,″FirstName");8.2.3數據集作為數據源數據集DataSet類實現IlistSource接口。因為DataSet的數據綁定快速而直觀,而且可以實現與數據源斷開連接。這使它成為數據綁定控件的重要數據源之一。下面的代碼把DataSet綁定到一個頁面的兩個Label控件上,這些代碼被放置在Form_Load事件處理程序中://填充數據集da.Fill(ds,″Products″)首先,用Northwind數據庫的Products表中的數據填充DataSet。接著,把特定的字段綁定到兩個把textBox控件上://把textBox1的Text綁定到ProductName列上textBox1.DataBindings.Add(″Text″,ds,″Products.ProductName″);//把textBox2的Text綁定到UnitPrice列上textBox2.DataBindings.Add(″Text″,ds,″Products.UnitPrice″);如果要瀏覽數據,同樣可以使用BindingManager來實現這個功能。8.2.4數據視圖作為數據源DataView類實現ItypedList接口,提供DataTable的可定制視圖。綁定到DataView對象像綁定到DataTable對象一樣簡單,因為DataView提供了DataTable內容的動態視圖。下面的代碼實現了將數據綁定到數據視圖://填充數據集da.Fill(ds,″Employees″);DataTablemyTable=ds.Tables[″Employees″];//創建一個數據視圖DataViewdv=newDataView(myTable,″Country=’USA’″,″FirstName″,DataViewRowState.CurrentRows);//綁定到FirstName列textBox1.DataBindings.Add(″Text″,dv,″FirstName″);//綁定到FirstName列textBox2.DataBindings.Add(″Text″,dv,″LastName″);本例代碼首先用數據填充DataSet,接著創建DataTable,然后使用DataView對象提取數據,從DataTable對象的表中選擇住在美國的所有雇員的姓名列,最后進行數據綁定。8.3DataGrid的使用8.3.1使用DataGrid顯示數據DataGrid可以為數據集提供用戶界面、相關表之間的導航功能以及豐富的格式設置和編輯功能。數據的顯示和操作是兩種不同的功能:用戶界面由控件處理,而數據更新由Windows窗體數據綁定結構和.NETFramework數據提供程序來處理。因此,綁定到同一個數據源的多個控件將保持同步。為了使DataGrid控件起作用,應在設計時使用DataSource和DataMember屬性,或在運行時使用SetDataBinding方法將其綁定到數據源。這種綁定使DataGrid指向實例化的數據源對象(如DataSet或DataTable),同時DataGrid控件顯示對數據所執行操作的結果。大多數數據特定的操作都是通過數據源而不是DataGrid來執行。在DataGrid中一次只能顯示一個表。如果在表之間定義了父子關系,則用戶可以在相關表之間移動以選擇要在DataGrid控件中顯示的表。對于DataGrid有效的數據源包括:DataTable類,DataView類,DataSet類和DataViewManager類。DataGrid控件可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論