----+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0
'SQLサーバーのインポート
Imports System.Data.SqlClient
Public Class Form1
'データベース(SQLサーバー)の定義
Private dbCon As New SqlConnection() 'データベースのコネクション
Private dbCmd As New SqlCommand() 'データベースのコマンド
Private dbDr As SqlDataReader 'データベースのデータリーダー
'******************************************************************************
'* フォームのロード(イベント処理)
'******************************************************************************
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'データグリッドビューの列見出し(タイトル名,幅)の定義
Dim aryColHeader() As String = {"ユーザーID", "操作者名", "パスワード", "性別", "作成日"}
Dim aryColLength() As Integer = {160, 180, 160, 60, 100}
Dim aryList As New ArrayList()
Dim rowInfo() As String
'性別コンボボックスの定義(性別)
Dim comboBoxCol As New DataGridViewComboBoxColumn
'データベース接続(Data Source=サーバー名,Catalog=データベース名)
dbCon.ConnectionString =
"Data Source=PUBLIC\SQLEXPRESS;Initial Catalog=dbExpress;Integrated Security=True"
dbCon.Open()
dbCmd.Connection = dbCon
'性別テーブルの検索(SQL文)の設定
Dim strSQL As String = "SELECT seibetu_kanji" _
& " FROM exp_seibetu" _
& " ORDER BY seibetu"
'性別テーブルの検索
dbCmd.CommandText = strSQL
dbDr = dbCmd.ExecuteReader()
aryList.Clear()
aryList.Add("")
'性別テーブルより情報の取得
While dbDr.Read()
aryList.Add(dbDr("seibetu_kanji"))
End While
'データリーダーの解放
dbDr.Close()
'性別コンボボックスにバインド
comboBoxCol.DataSource = aryList
'データグリッドビューの編集(コンボボックスセルがある場合、Columns.Addで列を設定)
With DataGridView1
.Columns.Clear()
'データグリッドビューのプロパティ
.BackgroundColor = Color.LightGray '背景色
.RowsDefaultCellStyle.BackColor = Color.Honeydew '行の背景色
.AlternatingRowsDefaultCellStyle.BackColor = Color.Ivory '行の交互背景色
'データグリッドビューの列数の設定(Columns.Addの場合、列数の指定は不要)
'.ColumnCount = 5
'データグリッドビューの列情報の設定
For i As Integer = 0 To 4 '.Columns.Count - 1
'.Columns(i).HeaderText = aryColHeader(i) '列ヘッダーのタイトル
If i = 3 Then '勤務区別(コンボボックス)
comboBoxCol.HeaderText = aryColHeader(i)
.Columns.Add(comboBoxCol)
Else
.Columns.Add("col" & i.ToString, aryColHeader(i))
End If
.Columns(i).Width = aryColLength(i) '列の幅
Next
End With
'ユーザーテーブルの検索(SQL文)の設定
strSQL = "SELECT usr.user_id AS usr_id, usr.user_name AS user_name," _
& " usr.pass_word AS pass_word, sei.seibetu_kanji AS seibetu_kanji," _
& " usr.renew_date AS renew_date" _
& " FROM exp_user AS usr" _
& " LEFT JOIN exp_seibetu AS sei ON usr.seibetu = sei.seibetu" _
& " ORDER BY user_id"
'ユーザーテーブルの検索
dbCmd.CommandText = strSQL
dbDr = dbCmd.ExecuteReader()
'データグリッドビューの行にユーザーテーブルの取得情報の追加
While dbDr.Read()
ReDim rowInfo(5)
rowInfo(0) = dbDr.GetSqlString(0) 'dbDr("usr_id")
rowInfo(1) = dbDr.GetSqlString(1) 'dbDr("user_name")
rowInfo(2) = dbDr.GetSqlString(2) 'dbDr("pass_word")
rowInfo(3) = dbDr.GetSqlString(3) 'dbDr("seibetu_kanji")
rowInfo(4) = dbDr.GetDateTime(4) 'dbDr("renew_date")
DataGridView1.Rows.Add(rowInfo)
End While
'データリーダーの解放
dbDr.Close()
'データベース解放
dbCmd = Nothing
dbCon.Close()
End Sub
End Class