Visual Basic 2005 - 如何繫結至一個 IEnumerable 資料來源

摘要: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

         ' 將 DataGridView 控制項繫結至 BindingSource 元件。
         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