还是.NET新手,但这对我来说还不错。我无法弄清楚发生了什么。我正在尝试向SqlCommand添加1个参数。它是SQL Server中的一个整数,我正在向它传递一个整数。
它挂在Command.Parameters.Add(PolicyNo)
代码行上,并因“内部错误”而无法处理。
我也试过
Command.Parameters.AddWithValue(“@ PolicyNumber”,PolicyNo)
但无济于事。它用相同的错误消息轰炸出来。这是代码:
Public Function GetPolicyObj(ByVal PolicyNo As Integer) As PolicyInfo Implements ILetterWriter.GetPolicyObj
Dim SQLcon As New SqlClient.SqlConnection
'Establish the connection
SQLcon.ConnectionString = "Data Source=Hosed;Initial Catalog=MyCat;User ID=Goofy;Password=OpenSesame;"
SQLcon.Open()
Using Command As New SqlClient.SqlCommand("sp_GetPolicyInfo", SQLcon)
Command.CommandType = CommandType.StoredProcedure
Command.Parameters.Add(PolicyNo) 'Bombs on this line
Command.Connection.Open()
Dim reader As SqlClient.SqlDataReader = Command.ExecuteReader
任何想法?
谢谢, 杰森
答案 0 :(得分:1)
您是否尝试过创建这样的参数:
Dim param as new SqlParameter()
param.ParameterName = "ParamName"
param.Value = PolicyNo
Command.Parameters.Add(param)
答案 1 :(得分:0)
不完全确定这是否应该是问题,但是你没有给参数对象一个名字,只传递会引发异常的值,你必须给参数一个名字
Command.Parameters.Add(new SqlParameter("PolicyNo",PolicyNo))
答案 2 :(得分:0)
Command.Parameters.Add()将SqlParameter对象作为其参数。所以你不能只发送整数。
http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson06.aspx
答案 3 :(得分:0)
尝试:
Command.Parameters.AddWithValue("@PolicyNo", PolicyNo);
答案 4 :(得分:0)
也许您可以尝试明确输入参数:
Command.Parameters.Add("@PolicyNumber", SqlDbType.Int)
Command.Parameters("@PolicyNumber").Value = PolicyNo
确保您的参数名称和数据类型与存储过程中的内容匹配。