1

3 つのパラメーターを取るストアド プロシージャがあります。それら@a,@b,@cを呼び出しましょう。すべてオプションです。

ストアド プロシージャでは、次の順序で定義されます。@a,@b,@c

これまでの調査に基づいて、.NET コードからこれらを任意の順序で呼び出すことができるはずです。

例えば:

.Add(New OleDbParameter("@c", OleDbType.Integer, 4, ParameterDirection.Input, False, 0, 0, "c", DataRowVersion.Current, c))

.Add(New OleDbParameter("@a", OleDbType.Integer, 4, ParameterDirection.Input, False, 0, 0, "a", DataRowVersion.Current, a))

しかし、これを行うと、ストアド プロシージャは、渡された最初の値が a で、2 番目の値が c であると認識します。

ここで何が問題なのですか?

4

2 に答える 2

5

OleDB は名前付きパラメーターをサポートしていません: http://msdn.microsoft.com/en-us/library/system.data.oledb.oledbcommand.parameters.aspx

于 2013-07-15T15:24:17.280 に答える
1

したがって、パラメーターを任意の順序で使用する場合は、OleDb よりも新しいデータ アクセス テクノロジに切り替える必要がありますが、OleDb に行き詰まっている場合は、順序を正しくする必要があります。

プレストンの回答で十分だと思いましたが、この回答を投稿しました。それがより役立つと感じたら、それを受け入れてください。

于 2013-07-15T15:47:54.243 に答える