从OleDbCommand中省略命名参数
我有一个简单的存储过程,需要6个参数。 假设它们是@a, @b, @c, @d, @e, @f
它们都是可选的,默认值为null
。
我需要知道如何仅使用其中一些参数调用存储过程。 我知道一般步骤:
-
定义连接并打开它。
-
定义命令对象
-
将参数添加到命令对象。
-
执行命令。
现在,对于@a, @b, @c, @d, @e, @f
每一个@a, @b, @c, @d, @e, @f
我使用Parameters.Add()
来添加该参数。
问题是:如果我想用@a
和@f
调用存储过程怎么办,我还需要Add()
其他参数吗? 或者,如果我只添加2个参数,存储过程将如何知道我提供的参数?
问题是:如果我想用@a和@f调用存储过程怎么办,
只要其他是可选的SP将执行没有任何错误。
在这种情况下,我还需要添加其他参数(b,c,d,e)吗?
不,你没有。
如果我只添加2个参数,存储过程如何知道订单?
订单在这里并不重要。 参数名称是。 它必须匹配SP声明中的那个。
因为你说所有参数都是可选的(允许为null); 所以即使你没有任何参数调用SP它应该运行正常。
如果您在proc中将参数定义为可为空,则运行它时不会出现任何问题。
与其他人一样,重要的部分是您在参数中命名参数