从OleDbCommand中省略命名参数

Joe*_*ran -7 c# sql vb.net sql-server oledb

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

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

  1. 定义连接并打开它.

  2. 定义命令对象

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

  4. 执行命令.

现在@a, @b, @c, @d, @e, @f我每个人都Parameters.Add()用来添加那个参数.

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

Mar*_*zek 6

问题是:如果我想用@a和@f调用存储过程怎么办,

只要其他是可选的SP将执行没有任何错误.

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

不,你没有.

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

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

  • @Joe来自[文档](http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx):_"当使用带有SqlCommand的参数来执行SQL Server存储过程时,参数的名称添加到Parameters集合必须与存储过程中参数标记的名称匹配."_ (3认同)