摘要:Visual Basic 2005 - 如何繫結至一個 IEnumerable 資料來源
由於 BindingSource 元件實作 IEnumerable 介面,使得我們可以藉由 BindingSource 元件這一個中間階層的角色,將控制項繫結至 IEnumerable 資料來源。也就是說,從現在開始,我們可以將控制項繫結至 System.Data.SqlClient.SqlDataReader 之類的資料來源。當我們將 BindingSource 元件繫結至一個 IEnumerable 資料來源,BindingSource 會建立一個 IBindingList 並將 IEnumerable 資料來源的內容新增至清單中。
以下的程式碼示範如何將 DataGridView 控制項繫結至一個 SqlDataReader 物件:
Private Sub CH3_DemoForm034_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' 利用SqlConnectionStringBuilder物件來構建連接字串。
Dim connectStringBuilder As New SqlConnectionStringBuilder()
connectStringBuilder.DataSource = "(local)SQLEXPRESS"
connectStringBuilder.InitialCatalog = "北風貿易"
connectStringBuilder.IntegratedSecurity = True
Try
Using cn As _
New SqlConnection(connectStringBuilder.ConnectionString)
' 開啟連接。
cn.Open()
Dim foxCMD As New SqlCommand( _
"SELECT 身份證字號,姓名,員工性別,自傳 " & _
"FROM 飛狐工作室WHERE 自傳IS NOT NULL", cn)
Using drFox As SqlDataReader = foxCMD.ExecuteReader()
' 將 BindingSource 元件繫結至 SqlDataReader。
Me.BindingSource1.DataSource = drFox
Me.DataGridView1.DataSource = Me.BindingSource1
End Using
End Using
Catch err As SqlException
MessageBox.Show(err.Message, "SQL Exception", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Exit Sub
End Try
End Sub