从OleDbCommand中省略命名参数

时间:2013-07-15 11:52:45

标签: c# sql sql-server vb.net oledb

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

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

  1. 定义连接并打开它。

  2. 定义命令对象

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

  4. 执行命令。

  5. 现在每个@a, @b, @c, @d, @e, @f我都使用Parameters.Add()添加该参数。

    问题是:如果我想仅使用@a@f调用存储过程,我还需要Add()其他参数吗?或者,如果我只添加2个参数,存储过程将如何知道我提供的参数?

3 个答案:

答案 0 :(得分:6)

  

问题是:如果我想用@a和@f,

调用存储过程怎么办?

只要其他是可选的,SP就会毫无错误地执行。

  

在这种情况下,我还需要添加其他参数(b,c,d,e)吗?

不,你没有。

  

如果我只添加2个参数,存储过程如何知道订单?

订单在这里并不重要。参数名称是。它必须匹配SP声明中的那个。

答案 1 :(得分:0)

因为你说所有参数都是可选的(允许为null);因此,即使您在没有任何参数的情况下调用SP,也应运行良好。

答案 2 :(得分:0)

如果您在proc中将参数定义为可为空,则运行它时不会出现任何问题。

与其他人一样,重要的部分是你在参数

中命名参数