存储过程有2个参数

时间:2013-07-15 15:21:32

标签: c# sql sql-server vb.net stored-procedures

我有一个存储过程,它带有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,第二个值是c。

这里有什么问题?

2 个答案:

答案 0 :(得分:5)

答案 1 :(得分:1)

因此,如果您想以任何顺序使用参数,那么您需要切换到比OleDb更新的数据访问技术,但如果您遇到OleDb,那么您需要使订单正确。

我认为普雷斯顿的答案已经足够了,但我已经发布了这个答案。如果你觉得它有帮助,那就接受吧。