在《 .net中將DataGridView內的數據導出為Excel表格》中說了如何導出數據到Excel,今天這篇文章將講述如何綁定數據源,在控件中顯示我們需要的信息.
在敲機房收費系統的時候,我的主線都是從三層到數據庫,然后從數據庫中返回直至U層。如果是這樣的處理方式,和DataGridView打交道的都是DataTable。不過DataGridView也有可以直接和數據庫連接,來與數據源綁定。
一 與之相關的組件BingSource
說到綁定,我們不得不提到BingSource.它是類庫System.Window.Form命名空間內的類。MSDN中解釋它的作用是封裝窗體的數據源,並提供導航、篩選、排序和更新的功能。我們通常叫他為組件。BingSource組件有很多用途。首先,他是通過windows窗體控件與數據源之間提供流通管理、更改通知和其他服務簡化了窗體上的控件到數據的綁定。這通過DataSource屬性將BingSource組件附加到數據源來實現。對於復雜的綁定方案,可以選擇將DataMember屬性設置為數據源中特定列或列表。然后將控件綁定到BingSource。有沒有發現,BingSource組件就是一個中間樞紐,他管理這控件和數據源之間數據的傳輸。
二 具體操作步驟
1連接數據源
根據出現的提示選擇自己需要的數據源
點擊完成后會在設計處出現三個組件如下圖所示:
上面的這三個組件就是我們在查詢數據庫時經常用到的DateSet和TableAdapter,一個是緩存數據的地方,一個是通信機制。TableAdapter 通過對數據庫執行 SQL 語句和存儲過程來提供應用程序和數據庫之間的通信。除 DataAdapter 的標准功能外,TableAdapter 還提供其他查詢,這些查詢與關聯類型化 DataTable 共享通用架構。TableAdapter 將返回數據加載到它在應用程序中的關聯數據表中,或返回已用數據填充的新數據表。
在這三個組件中大家可以添加查詢,寫一些查詢語句。
如果你的查詢條件是來自窗體中的控件中的內容那么就可以用參數代替具體的條件比如:查詢語句為
SELECT * from T_Card where Sex=@Sex (查詢T_Card 中性別等於@Sex的信息 )
在窗體中就會出現如下控件,在窗體中就會出現如下代碼:
窗體加載方法下:
'TODO: 這行代碼將數據加載到表“ChargeDataSet8.T_Student”中。您可以根據需要移動或刪除它。
Me.T_StudentTableAdapter.Fill(Me.ChargeDataSet8.T_Student)
單擊FillBy 控件就會添加SexToolStripTextBox.Text的內容為條件的查詢。它就是我們查詢語句中的參數@Sex的值。
Private Sub FillByToolStripButton_Click(sender As Object, e As EventArgs) Handles FillByToolStripButton.Click
Try
Me.T_StudentTableAdapter.FillBy(Me.ChargeDataSet8.T_Student, SexToolStripTextBox.Text)
Catch ex As System.Exception
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
通過這些代碼和控件,我們可以根據自己的需要將里面的代碼或控件換成自己需要的就可以了,方便快捷。
2設置表格
三 補充:
在使用TableAdapter的時候,會發現他有兩種方法:Fill和FillBy,他們有什么區別呢?
下面的這張圖很能說明問題:
Fill定義了TableAdaper的方法,而FillBy則是具體的去實現這個Fill的方法。
上面說的這些只是數據綁定的一小部分內容,還有很多寶藏等待大家挖掘。