找不到存储过程''

时间:2012-09-06 10:01:46

标签: .net sql stored-procedures

我正在尝试将SQL DB作为存储过程发送。它并没有真正存储在数据库中,我正在动态创建它。这是代码(借口我的VB):

Dim idOfChosenRecord As Integer = {Some value}
Dim myQuery As String  "SELECT [field] FROM [myDB].[myTable] WHERE [id]=@id"
Dim cmd As SqlCommand = New SqlCommand(myQuery, myConnectionInitializedAndOpen)
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.Add(New SqlParameter("@id", idOfChosenRecord))
Dim Reader As SqlDataReader = cmdView.ExecuteReader()

类似的函数在我的代码之前运行良好(只是它调用了一个真正的存储过程),并且事实上整个模块都运行良好。 不同之处在于我正在尝试在现场创建查询。

错误消息是此问题的奇怪标题: Could not find stored procedure '' - 抓住了上述代码的最后一行。

如何解决这个问题(最好不要深入研究数据库本身......)?

TX

4 个答案:

答案 0 :(得分:5)

替换

cmd.CommandType = CommandType.StoredProcedure

cmd.CommandType = CommandType.Text

问题是您指定要调用存储过程,而实际上您只是一个查询。所以你应该指定这是一个查询。

答案 1 :(得分:0)

你应该改变:

cmd.CommandType = CommandType.StoredProcedure

cmd.CommandType = CommandType.Text

答案 2 :(得分:0)

你不能这样做。您无法动态创建存储过程。选择CommandType.StoredProcedure后,您会希望在myQuery中传递过程名称。所以你必须使用cmd.CommandType = CommandType.Text

答案 3 :(得分:0)

您需要将其更改为

cmd.CommandType = CommandType.Text

存储过程与运行文本查询不同(就像您在此处所做的那样)。