从OleDbCommand中省略命名参数

我有一个简单的存储过程,需要6个参数。 假设它们是@a, @b, @c, @d, @e, @f它们都是可选的,默认值为null

我需要知道如何仅使用其中一些参数调用存储过程。 我知道一般步骤:

  1. 定义连接并打开它。

  2. 定义命令对象

  3. 将参数添加到命令对象。

  4. 执行命令。

现在,对于@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中将参数定义为可为空,则运行它时不会出现任何问题。

与其他人一样,重要的部分是您在参数中命名参数