データーをストアドからDataTableへ受け取り,グリッドに表示
(複数テーブル参照でCommandBuilderが使えない場合)
CommandBuilderが使えない場合は,InsertCommand・UpdateCommand・DeleteCommandをそれぞれ自前で作る
Dim cn As SqlClient.SqlConnection
Dim da As New SqlClient.SqlDataAdapter()
Dim dt As New DataTable
Private Sub a1()
Dim cmd As New SqlClient.SqlCommand(“stHoge”, cn)
Try
cmd.CommandType = CommandType.StoredProcedure
da.SelectCommand = cmd
‘Insert
cmd = New SqlClient.SqlCommand(“stHogeInsert”, cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Clear()
cmd.Parameters.Add(“@a1”, SqlDbType.Int, 4, “a1”)
‘ID値を返す(これがないとIDが不定となる)
Dim parameter As SqlClient.SqlParameter = cmd.Parameters.Add(“@Identity”, SqlDbType.Int, 4, “ID”)
parameter.Direction = ParameterDirection.Output
da.InsertCommand = cmd
‘Update
cmd = New SqlClient.SqlCommand(“stHogeUpdate”, cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Clear()
cmd.Parameters.Add(“@ID”, SqlDbType.Int, 4, “ID”)
cmd.Parameters.Add(“@a2”, SqlDbType.Int, 4, “a2”)
da.UpdateCommand = cmd
‘Delete
cmd = New SqlClient.SqlCommand(“stHogeDelete”, cn)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Clear()
cmd.Parameters.Add(“@ID”, SqlDbType.Int, 4, “ID”)
da.DeleteCommand = cmd
dt.PrimaryKey = Nothing
dt.Locale = System.Globalization.CultureInfo.InvariantCulture
dt.Clear()
da.Fill(dt)
‘dt.PrimaryKey = New DataColumn() {dt.Columns(“ID”)}
DGV.DataSource = dt
Finally
cmd.Dispose()
End Try
End Sub

