Visual Basic LINQ Hands On Labs for Orcas Beta 1
めずらしくコードはVBで書かれたLINQのハンズオン資料が公開されています。
2つのdocファイルが提供されており、1つはコレクションとSQLとXMLの3つについて簡単に説明してあるもの、もう1つはLINQ TO SQLについて詳しく解説してあるものとなっているようです。
この資料を参考にして、最もシンプルなLINQ TO SQLを使ったWPFアプリケーションの作成手順を書いてみたいと思います。
1.Orcas Beta 1で、新規にWPFアプリケーションを作成します。
2.「新しい項目の追加」で、プロジェクトにLinq to SQLファイルをNorthWind.dbmlという名前で追加します。
3.サーバーエクスプローラでローカルのsqlexpressに接続します(NorthWindを使うので、ない場合は作成しておきます)。
4.NorthWind.dbmlファイルを開いた状態にし、サーバーエクスプローラのNorthWindデータベースからCustomerテーブルをドラッグ&ドロップします。
5.下記のようにWindow1.xamlを書きます。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Window1"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Grid>
<ListView x:Name="CustomerList" ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn Header="CompanyName" DisplayMemberBinding="{Binding Path=CompanyName}"/>
<GridViewColumn Header="ContactName" DisplayMemberBinding="{Binding Path=ContactName}"/>
<GridViewColumn Header="Country" DisplayMemberBinding="{Binding Path=Country}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Window1"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<Grid>
<ListView x:Name="CustomerList" ItemsSource="{Binding}">
<ListView.View>
<GridView>
<GridViewColumn Header="CompanyName" DisplayMemberBinding="{Binding Path=CompanyName}"/>
<GridViewColumn Header="ContactName" DisplayMemberBinding="{Binding Path=ContactName}"/>
<GridViewColumn Header="Country" DisplayMemberBinding="{Binding Path=Country}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Window>
6.Window1.vbファイルを下記のように書きます。
Class Window1
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
' Use a standard connection string
Dim db As New NorthwindDataContext()
CustomerList.DataContext = From cust In db.Customers _
Where cust.Country = "USA" _
Select cust
End Sub
End Class
Private Sub Window_Loaded(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs)
' Use a standard connection string
Dim db As New NorthwindDataContext()
CustomerList.DataContext = From cust In db.Customers _
Where cust.Country = "USA" _
Select cust
End Sub
End Class
今回は表示にListViewを使いましたので、実行結果は下記のような表示となります。