我有一个存储过程,它带有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。
这里有什么问题?
答案 0 :(得分:5)
答案 1 :(得分:1)
因此,如果您想以任何顺序使用参数,那么您需要切换到比OleDb更新的数据访问技术,但如果您遇到OleDb,那么您需要使订单正确。
我认为普雷斯顿的答案已经足够了,但我已经发布了这个答案。如果你觉得它有帮助,那就接受吧。