【发布时间】:2013-03-04 22:15:21
【问题描述】:
我已经为此苦苦思索了一段时间。
我有一个从表中检索字段并填充输入的函数,但是当我尝试执行该函数时,我收到一条错误消息,提示“过程或函数‘Quad_GetAllFields’需要参数‘@subWeek’,但未提供该参数”。
我知道我正在提供参数,因为我可以从函数中的任何位置访问它。
函数是:
Protected Sub setAllFields(ByVal myConnection As SqlConnection, ByVal subWeek As String, ByVal site As String)
Dim myCommand = New SqlCommand("Quad_GetAllFields", myConnection)
myCommand.Parameters.AddWithValue("@subWeek", subWeek)
myCommand.Parameters.AddWithValue("@site", site)
Dim myDataReader As SqlDataReader = myCommand.ExecuteReader()
If myDataReader.Read() Then
'populate fields
End If
End Sub
而存储过程是:
ALTER PROCEDURE dbo.Quad_GetAllFields
(
@subWeek VARCHAR(50),
@site VARCHAR(20)
)
AS
BEGIN
SELECT TOP (1) ID, Priority1, Priority2, Priority3, Priority4, Highlight1, Highlight2, Highlight3, Highlight4, Update1, Update2, Update3, Ahead1, Ahead2, Ahead3, Outlook1, Outlook2, Comments, Site, Week, Submitted FROM Charts WHERE Week = @subWeek AND Site = @site ORDER BY ID DESC
END
对我做错了什么有帮助吗?
我在使用存储过程方面还很陌生,但我仍然找不到问题。
谢谢
【问题讨论】:
-
我怀疑这是原始代码,因为您必须将
SqlCommand'sCommandType属性设置为StoredProcedure。 -
@TimSchmelter,这正是问题所在。我在代码中的每个其他存储过程调用中都有这一行,但错过了一次。谢谢!
标签: asp.net vb.net visual-studio-2010 sql-server-2008