过程或函数 'SortDB' 需要参数 '@ SortId',但未提供该参数。

ioriioriii 2014-08-24 05:48:04
Imports System.Data.SqlClient

Public Class SqlDB

Private db As String = ConfigurationManager.ConnectionStrings("DBConnection").ConnectionString
Private connection As SqlConnection = New SqlConnection(db)
Private command As SqlCommand
Private reader As SqlDataReader

Function Get_Sort(ByVal SortId As String, ByVal PageIndex As String)

Dim PageSize As String = 10
Dim sql_select As String = "SortDB"
command = New SqlCommand(sql_select, connection)
command.Parameters.Add(New SqlParameter("@SortId", SortId))
command.Parameters.Add(New SqlParameter("@PageIndex", PageIndex))
command.Parameters.Add(New SqlParameter("@PageSize", PageSize))
connection.Open()
reader = command.ExecuteReader(CommandBehavior.CloseConnection)
Dim DataList As New List(Of SortModels)()
While reader.Read()
DataList.Add(New SortModels With {.SortName = reader("SortName").ToString(), .Id = reader("Id").ToString()})
End While
Return DataList

End Function

End Class


存储过程:

CREATE PROCEDURE [dbo].[SortDB]
@SortId int,
@PageSize int,
@PageIndex int
AS
BEGIN

select * from (select ROW_NUMBER() over(order by id Desc) as rowNumber, * from Ameav_Vote where SortId=@SortId) as temp where rowNumber between (((@PageIndex-1)*@PageSize)+1) and (@PageIndex*@PageSize)
END

提示过程或函数 'SortDB' 需要参数 '@ SortId',但未提供该参数。
请问高手们是怎么回事?如果不用存储过程,直接用SQL语句就没问题。
...全文
260 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tiger_Zhao 2014-08-25
  • 打赏
  • 举报
回复
抄例子的时候一句都不能漏啊!
ioriioriii 2014-08-25
  • 打赏
  • 举报
回复
引用 8 楼 Tiger_Zhao 的回复:
少了这个吧
command.CommandType = CommandType.StoredProcedure
果然如此!太感谢了
Tiger_Zhao 2014-08-25
  • 打赏
  • 举报
回复
少了这个吧
command.CommandType = CommandType.StoredProcedure

ioriioriii 2014-08-25
  • 打赏
  • 举报
回复
查询器里用exec 没问题啊 但是还是提示:过程或函数 'SortDB' 需要参数 '@SortId',但未提供该参数。
bdmh 2014-08-24
  • 打赏
  • 举报
回复
你在查询器里用exec ....执行看看行不行
ioriioriii 2014-08-24
  • 打赏
  • 举报
回复
ioriioriii 2014-08-24
  • 打赏
  • 举报
回复
引用 3 楼 bdmh 的回复:
它提示的错误为啥带个空格
那个是我发帖时不小心打上的空格。。。。。。本来没有空格的
bdmh 2014-08-24
  • 打赏
  • 举报
回复
它提示的错误为啥带个空格
ioriioriii 2014-08-24
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
你new参数时,指明参数类型,如 new SqlParameter("@Id", SqlDbType.Int,4)
即使这样也不行,我试过了 command.Parameters.Add(New SqlParameter("@SortId", SqlDbType.Int, 4)) command.Parameters.Add(New SqlParameter("@PageIndex", SqlDbType.Int, 4)) command.Parameters.Add(New SqlParameter("@PageSize", SqlDbType.Int, 4)) command.Parameters("@SortId").Value = 111 command.Parameters("@PageIndex").Value = 111 command.Parameters("@PageSize").Value = 111 这样的结果还是提示:过程或函数 'SortDB' 需要参数 '@ SortId',但未提供该参数。
bdmh 2014-08-24
  • 打赏
  • 举报
回复
你new参数时,指明参数类型,如
new SqlParameter("@Id", SqlDbType.Int,4)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧