VBでデータベースの内容をDataGridViewに一覧表示する。

今回はVBでSQLサーバーに接続して、その内容をDataGridViewに表示する。そして、DataGridViewの表示の設定も少し行ってみたいと思います。
手順は
1 SQLサーバーに接続するための接続文字列の生成
2. データアダプターを使ったデータベースへのアクセス。
3 .取得したデータセットをDataGridViewに設定する。
4. DataGridViewの表示設定を行う。
この4点で行きたいと思います。

サンプルは自分のPC内にSQLサーバーがあるのでlocalhostとなっていますが、通常はIPアドレスとかになります。

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
       '接続文字列の生成 
        Dim server_name As String = "localhost"   'またはIPアドレス
        Dim user_name As String = "HANAKO"
        Dim password As String = "123456"
        Dim conn_str As String = ""
 
        'インスタンス名は、HANAKO_PC\SHOP_DATABASE など
        conn_str = "Server=インスタンス名;Connect Timeout=20;User ID=" & user_name & ";Pwd=" & password & ";Database=SampleDB"
 
        'SQL文の生成
        Dim sql_str As String = "select * from TM商品マスタ"
        Dim data_set As New DataSet
        Dim adpt As New SqlClient.SqlDataAdapter(sql_str, conn_str)
 
        'データセットを渡して結果セットを受け取ります。そのとき取得した結果セットに名前を付けます。ここではsample_table1
        adpt.Fill(data_set, "sample_table1")
 
        'DataGridView1にセットします。
        DataGridView1.DataSource = data_set
        DataGridView1.DataMember = "sample_table1"
 
        'DataGridView1の表示設定を行います。
        GridViewSetting()

    End Sub

‘DataGridViewの表示設定

Private Sub GridViewSetting()
        Dim i As Integer
        Dim clm_name As String
 
        'ヘッダー中寄せ
        DataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        '行選択
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
 
        DataGridView1.AllowUserToAddRows = False  '新規行禁止
        DataGridView1.AllowUserToDeleteRows = False '削除禁止
        DataGridView1.RowHeadersWidth = 20
 
       'プログラムでのみ値編集可
        DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
 
        DataGridView1.DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft
 
        For i = 0 To DataGridView1.Columns.Count - 1
 
            clm_name = DataGridView1.Columns(i).Name
 
            If clm_name.Equals("商品コード") Then
                DataGridView1.Columns(i).Frozen = True
                DataGridView1.Columns(i).Width = 80
                DataGridView1.Columns(i).Visible = True
 
            ElseIf clm_name.Equals("商品名") Then
                DataGridView1.Columns(i).Frozen = True
                DataGridView1.Columns(i).Width = 80
                DataGridView1.Columns(i).Visible = True
 
            ElseIf clm_name.Equals("単価") Then
                DataGridView1.Columns(i).Frozen = True
                DataGridView1.Columns(i).Width = 80
                DataGridView1.Columns(i).Visible = True
                DataGridView1.Columns(i).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight
 
            ElseIf clm_name.Equals("更新日時") Then
                DataGridView1.Columns(i).Frozen = True
                DataGridView1.Columns(i).Width = 140
                DataGridView1.Columns(i).Visible = True
                DataGridView1.Columns(i).DefaultCellStyle.Format = "yyyy/MM/dd HH:mm:ss"
            Else
                DataGridView1.Columns(i).Frozen = False
                DataGridView1.Columns(i).Width = 0
                DataGridView1.Columns(i).Visible = False
  
            End If
 
        Next
 
    End Sub
 

141223_G01

SQLサーバーのデフォルトポート番号を変更していなければ上記でいいのですが、変更している場合は、サーバー名の後にカンマで区切ってポート番号を入れます。

カテゴリー: VB パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です