私はSQLServerのTVPを初めて使用し、基本を理解しようとしています。SQLExpressのNorthwindデータベースにサンプルTVPを作成しました。VB.NETからの私のコードはかなり単純です(以下を参照)。プロシージャのTVPパラメータは空です。SQL ServerでTVPをテストしましたが、正常に動作します。何か案は?SQL Expressはテーブル値パラメータを完全にサポートしていますか?
Dim dt As DataTable = New DataTable()
dt.Columns.Add("RegionID", GetType(Int64))
dt.Columns.Add("RegionDesc", GetType(String))
dt.Rows.Add(21, "FromProgram2")
dt.Rows.Add(22, "FromProgram3")
Try
If dt.Rows.Count > 0 Then
Dim mycommand As SqlCommand = New SqlCommand
Dim myconn As SqlConnection = New SqlConnection(connstring)
mycommand.CommandText = "dbo.TestType"
mycommand.Connection = myconn
Dim param1 As SqlParameter = mycommand.Parameters.AddWithValue("@RegionData", dt)
param1.SqlDbType = SqlDbType.Structured
param1.TypeName = "dbo.RegionType"
mycommand.Connection.Open()
mycommand.ExecuteNonQuery()
mycommand.Connection.Close()
Console.WriteLine("")
Console.ReadLine()
Else
Console.Write("No data in datatable")
Console.ReadLine()
End If
Catch ex As Exception
Console.WriteLine(ex.Message)
Console.ReadLine()
End Try