以下代码将生成错误
System.Data.SqlClient.SqlException:'Procedure or function '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需要一个小整数dto1
,而dto2
是日期时间偏移量
我还为每个参数尝试了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
发布于 2019-04-12 03:55:18
你必须使用
cmd.CommandType = CommandType.StoredProcedure
当命令引用存储过程时。
https://stackoverflow.com/questions/55639545
复制相似问题