DataGrid SQLサーバのデータを表示する WPF

VB Tips And Sample(HOME)VBプログラマの為のWPF入門

DataGrid SQLサーバのデータを表示する WPF

データグリッドに、SQLサーバのデータを表示してみる。
データは、いつもの郵便局データ。 122585行を取得、表示するのに2秒程度なので、非常に速い。
赤枠の所をクリックすると、ソート機能も標準でついている。
デフォルトで、至れり尽くせりのグリッドになってる。
MSDNのDataGridのページ
非常に面白いことができそうなので、次回はMSのチュートリアルを自分でやってみよう!

データグリッド WPF

Imports System.Data
Imports System.Data.SqlClient

Public Class Window1

    Private Sub Button1_Click(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles Button1.Click
        'SQLサーバからKEN_ALLを検索取得

        Dim DA As New SqlDataAdapter
        Dim cnn As New SqlConnection
        Dim cmnd As New SqlCommand
        Dim ds As DataSet = New DataSet


        Try
            'すべてのテーブル内のすべての行を削除して、データの DataSet を消去します。
            ds.Clear()

            'コネクションストリングを設定
            cnn.ConnectionString = "user id=vbuser;password=sa;initial catalog=MYTEST;data source=(local);Connect Timeout=5"
            'cnn.ConnectionString = "user id=vbuser;password=sa;initial catalog=MYTEST;data source=PC名\SQLEXPRESS;Connect Timeout=5"
            'この接続は明示的にオープンクローズする必要がない。Fillでオープンクローズを勝手にしてくれる


            Dim i As New System.Diagnostics.Stopwatch()

            i.Start()

            'SQL文を設定し、コマンドにコネクションを設定する
            Dim MySQL As String
            'わざと並びを変えて
            MySQL = "SELECT * FROM KEN_ALL ORDER BY 県"
            cmnd.CommandText = MySQL
            cmnd.Connection = cnn

            'データアダプターにコマンドを設定
            DA.SelectCommand = cmnd

            'レコード数の取得
            Dim reCount As Integer

            'データセットにデータの実態を取得する()
            reCount = DA.Fill(ds, "KEN_ALL")

            'MessageBox.Show(reCount)

            Dim tbv As New DataView
            tbv.Table = ds.Tables("KEN_ALL")

            Me.DataGrid1.ItemsSource = tbv

            i.Stop()
            Debug.Print(i.ElapsedMilliseconds.ToString)


        Catch ex As Exception
            MessageBox.Show(ex.Message, "SQL検索", MessageBoxButton.OK, MessageBoxImage.Error)
        End Try
    End Sub
End Class


XAMLはただコントロールを貼り付けただけなので、何も特殊な事はしていない。

<Window x:Class="Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300" WindowStartupLocation="CenterScreen">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>
        <Button Content="データ取得" Name="Button1" HorizontalAlignment="Center" VerticalAlignment="Center" Width="100" Height="50"></Button>
        <DataGrid Grid.Row="1" Name="DataGrid1">
            
        </DataGrid>
        
    </Grid>
</Window>

VB Tips And Sample(HOME)VBプログラマの為のWPF入門