当建立与数据源的连接后,可以使用 Command 对象来执行命令并从数据源中返回结果。您可以使用 Command 构造函数来创建命令,该构造函数采用在数据源、Connection 对象和 Transaction 对象中执行的 SQL 语句的可选参数。也可以使用 ConnectionCreateCommand 方法来创建用于特定 Connection 对象的命令。您可以使用 CommandText 属性来查询和修改 Command 对象的 SQL 语句。

Command 对象公开了几个可用于执行所需操作的 Execute 方法。当以数据流的形式返回结果时,使用 ExecuteReader 可返回 DataReader 对象。使用 ExecuteScalar 可返回单个值。使用 ExecuteNonQuery 可执行不返回行的命令。

当您将 Command 对象用于存储过程时,可以将 Command 对象的 CommandType 属性设置为 StoredProcedure。当 CommandTypeStoredProcedure 时,可以使用 CommandParameters 属性来访问输入及输出参数和返回值。无论调用哪一个 Execute 方法,都可以访问 Parameters 属性。但是,当调用 ExecuteReader 时,在 DataReader 关闭之前,将无法访问返回值和输出参数。

以下代码示例演示如何设置 Command 对象的格式,以便从 Northwind 数据库中返回 Categories 的列表。

SqlClient

SqlCommand catCMD = new SqlCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

OleDb

OleDbCommand catCMD = new OleDbCommand("SELECT CategoryID, CategoryName FROM Categories", nwindConn);

命令的性能计数器

SQL Server .NET 数据提供程序添加了一个性能计数器,它将使您能够检测与失败的命令执行相关的间歇性问题。若要确定因任何原因而失败的命令执行总次数,可以访问“.NET CLR 数据”性能对象下“性能监视器”中的“SqlClient:失败命令的总数”计数器。