0

SQLDBにストアドプロシージャとしてクエリを送信しようとしています。実際には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 ''-上記のコードの最後の行でキャッチされました。

これはどのように修正されますか(できればDB自体を掘り下げることなく...)?

tx

4

4 に答える 4

5

交換

cmd.CommandType = CommandType.StoredProcedure

cmd.CommandType = CommandType.Text

問題は、実際にはクエリしかないのにストアドプロシージャを呼び出すように指定したことです。したがって、これがクエリであることを指定する必要があります。

于 2012-09-06T10:03:56.823 に答える
0

変更する必要があります:

cmd.CommandType = CommandType.StoredProcedure

cmd.CommandType = CommandType.Text
于 2012-09-06T10:04:13.140 に答える
0

あなたはそれをこのようにすることはできません。その場でストアドプロシージャを作成することはできません。を選択するCommandType.StoredProcedureと、プロシージャ名をで渡す必要がありますmyQuery。だからあなたは使用する必要がありますcmd.CommandType = CommandType.Text

于 2012-09-06T10:04:34.260 に答える
0

次のように変更する必要があります

cmd.CommandType = CommandType.Text

ストアドプロシージャは、テキストクエリの実行とは異なります(ここで行っているように)。

于 2012-09-06T10:05:03.780 に答える