在大多数情况下,数据适配器的 Command 对象(SelectCommandInsertCommandUpdateCommand DeleteCommand)引用需要参数的 SQL 语句或存储过程。如果使用“数据适配器配置向导”来创建适配器,则会自动为您配置这些命令的参数。但是,您可能希望手动配置参数或对现有参数集合做少许更改。

提示 若要在对某命令的 SQL 语句进行更改之后配置参数,可以选择“查询生成器”中的“重新生成该命令的参数集合”选项。

为数据适配器配置参数

  1. 创建一个数据适配器。
  2. 展开要为其配置参数的命令对象(例如 UpdateCommand),然后在 Parameters 属性中单击“省略号”按钮()以打开“参数集合编辑器”窗口。
  3. 若要创建新的参数对象,请单击“添加”。
  4. 通过单击“排序”下的箭头移动新参数,将新参数放到其在集合中的正确索引位置。
  5. 若要设置参数属性,请在“成员”列表中选择参数,然后使用右边的属性网格。下表列出通常设置的属性。
    属性 说明
    SourceColumn 数据集表中某列的名称,将从该列读取参数值。该属性与填充 UPDATE、INSERT 或 DELETE 语句(或等效存储过程)中的值的参数一起使用。
    SourceVersion 如果参数值是通过 SourceColumn 属性导出的,则 SourceVersion 指定应使用数据集记录的哪个版本作为参数值源:
    • Original - 从数据库读取列时的列值。当需要列更改前的值时使用该选项。当主键正在变化,但您需要旧键来查找数据库中的记录是使用该选项的一个例子。
    • Current - 记录已更新后的列值。这通常是要写到数据库的值。
    • Default - 当未显式提供任何值时将列设置成的值。
    Value 要为参数设置的显式值。该属性经常在运行时设置,而不是在设计时静态设置。

    如果同时设置了 Value 属性和 SourceColumn 属性,则前者优先于后者。

    NamedParameter 指示参数是对应于变量(通常具有 @parametername 格式)还是对应于占位符(通常为问号)的布尔值。如果正在操作 SqlConnection 对象并使用命名参数,则将其设置为 true
    DBType、Precision、Scale、Size 有关参数值的本机数据类型(在数据存储区中)的信息。参数值转换为您指定的类型或从您指定的类型进行转换。
    Direction 指定是将参数值传递给命令还是从命令传递回来:
    • Input - 将值传递给命令。这是默认设置。
    • Output - 将值从存储过程传递回来。(不适用于 SQL 语句。)
    • InputOutput - 将值传递给存储过程并传递回来,通常具有已修改的值。
    • ReturnValue - 该值是显式返回值。默认情况下,返回值是参数集合中的第一项(索引值为零)。
    ParameterName 一个名称,通过它可引用集合中的参数来代替通过索引值引用参数。尽管并非必需,但建议使用参数名以便于维护。
  6. 单击“确定”关闭“参数集合编辑器”窗口。
  7. 重复步骤 3 到 7 为其他命令对象配置参数。