以下の ASP.NET (VB) コードがあります。私の目標は、1 つのパラメーターを受け入れるストアド プロシージャの出力を取得し、その情報をデータ テーブルに格納することです。
Dim strConnection1 As String = System.Configuration.ConfigurationManager.AppSettings("Rdf2012")
Dim conn1 As System.Data.SqlClient.SqlConnection
conn1 = New System.Data.SqlClient.SqlConnection(strConnection1)
Dim cmd1 As New SqlCommand
Dim prm1 As New SqlParameter
Dim dtDataTable1 As DataTable
cmd1.Connection = conn1
cmd1.CommandText = "usp_GetDetails"
cmd1.CommandType = CommandType.StoredProcedure
prm1 = cmd1.Parameters.Add(strProgramID, SqlDbType.VarChar, 50)
prm1.Direction = ParameterDirection.Input
conn1.Open()
Dim dataAdapter As New SqlDataAdapter
dataAdapter.SelectCommand = cmd1
Dim ds1 As New DataSet
dataAdapter.Fill(ds1)
conn1.Close()
dtDataTable1 = ds1.Tables("Table1")
プログラムは次の場所で停止します
dataAdapter.Fill(ds1) and says:
@1012952-4403 はプロシージャ usp_GetDetails のパラメータではありません
ストアド プロシージャは次のようになります。
ALTER PROCEDURE [dbo].[usp_GetDetails]
@ProId VARCHAR(20) = NULL
AS