vb.net缺少参数传递给存储的过程

时间:2019-04-11 19:04:47

标签: vb.net tsql

以下代码生成了错误

  

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)

enter image description here

您可以从图像中看到调试... ALl参数已设置。

存储的proc LineID需要一个smallint dto1dto2是datetimeoffset

我还为每个参数尝试了AddAddWithValue,例如:

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

1 个答案:

答案 0 :(得分:2)

您必须使用

cmd.CommandType = CommandType.StoredProcedure

当命令引用存储过程时。

相关问题