ボタンとデータグリッドビューを備えた Windows フォームがあります。このプロジェクトには、作業中のデータベース接続と LINQ to SQL クラスが含まれています。datagridview を LINQ to SQL にバインドしようとしています。
コードモジュールで私はこれを持っています:
Public Function DataGridList() As BindingSource
Dim NewBindingSource As New BindingSource()
Dim db As New DataClasses1DataContext()
NewBindingSource.DataSource = _
From Block In db.BLOCK_ASSIGNMENTs
Where Block.gr912_school = "Franklin"
Select Block.gr6_school Distinct
Return NewBindingSource
End Function
この button_click コードは次の形式です。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
DataGridView1.DataSource = DataGridList()
End Sub
ボタンをクリックすると、datagridview の学校名の長さが取得され、列ヘッダーは「長さ」になります。
代わりに、この非常によく似たコードを button_click で実行すると、学校名が即時ウィンドウに正しく表示されます。
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim db As New DataClasses1DataContext()
Dim TestQuery =
From Block In db.BLOCK_ASSIGNMENTs
Where Block.gr912_school = "Franklin"
Select Block.gr6_school Distinct
For Each block In TestQuery
Debug.Print(block)
Next
End Sub