[英]asp.net (VB) <> is not a parameter for stored procedure
I have the following ASP.NET (VB) code below. 我下面有以下ASP.NET(VB)代码。 My goal is to get the output of a stored proc that accepts 1 parameter and store that info into a data table:
我的目标是获取接受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")
Program stops at 程序在
dataAdapter.Fill(ds1) and says:
@1012952-4403 is not a parameter for procedure usp_GetDetails @ 1012952-4403不是过程usp_GetDetails的参数
This is what the stored proc looks like: 存储过程如下所示:
ALTER PROCEDURE [dbo].[usp_GetDetails]
@ProId VARCHAR(20) = NULL
AS
You need to do 你需要做
prm1 = cmd1.Parameters.AddWithValue ("@ProID", strProgramID)
instead of 代替
prm1 = cmd1.Parameters.Add(strProgramID, SqlDbType.VarChar, 50)
prm1.Direction = ParameterDirection.Input
Direction will be assumed to be input unless otherwise specified. 除非另有说明,否则将假定为方向输入。
Verify what strProgramID is equal to. 验证什么strProgramID等于。 You might be passing parameter value where parameter name is expected.
您可能在需要参数名称的地方传递参数值。 If that's the case, replace
如果是这种情况,请更换
Dim prm1 As New SqlParameter
....
prm1 = cmd1.Parameters.Add(strProgramID, SqlDbType.VarChar, 50)
prm1.Direction = ParameterDirection.Input
with 与
cmd1.Parameters.AddWithValue("@ProId",strProgramID)
You are creating parameter in a wrong way, try this: 您以错误的方式创建参数,请尝试以下操作:
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 dtDataTable1 As DataTable
cmd1.Connection = conn1
cmd1.CommandText = "usp_GetDetails"
cmd1.CommandType = CommandType.StoredProcedure
cmd1.Parameters.Add("@ProId",strProgramID)
conn1.Open()
Dim dataAdapter As New SqlDataAdapter
dataAdapter.SelectCommand = cmd1
Dim ds1 As New DataSet
dataAdapter.Fill(ds1)
conn1.Close()
dtDataTable1 = ds1.Tables("Table1")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.