以下代码生成了错误
System.Data.SqlClient.SqlException:'过程或函数 'usp_myStoredProc'期望参数'@LineID',而不是 提供。”
Using cn As New SqlConnection(ConnectionString)
cn.Open()
Using cmd As New SqlCommand("usp_myStoredProc", cn)
cmd.Parameters.AddWithValue("@LineID", LineId)
cmd.Parameters.Add("@dto1", SqlDbType.DateTimeOffset).Value = JamUpdateTimeCreated
cmd.Parameters.Add("@dto2", SqlDbType.DateTimeOffset).Value = JamUpdateTimeCreated
cmd.Parameters.AddWithValue("@IncludeZero", 0)
Dim result = cmd.ExecuteReader
Dim sections = new List(of Byte)
While(result.Read)
sections.Add(CType(result("Sect"), Byte))
End While
return sections
End Using
End Using
LineID被设置为LineID(在图像中可以看到253)
您可以从图像中看到调试... ALl参数已设置。
存储的proc LineID需要一个smallint
dto1
和dto2
是datetimeoffset
我还为每个参数尝试了Add
和AddWithValue
,例如:
cmd.Parameters.Add("@LineID", SqlDbType.SmallInt).Value = LineId
存储的过程
ALTER PROC [dbo].[usp_myStoredProc]
@LineID SMALLINT,
@dto1 DATETIMEOFFSET,
@dto2 DATETIMEOFFSET,
@IncludeZero BIT = 0
AS
SET NOCOUNT ON
答案 0 :(得分:2)
您必须使用
cmd.CommandType = CommandType.StoredProcedure
当命令引用存储过程时。