SqlCommand 概述

公共构造函数

SqlCommand 构造函数 已重载。初始化 SqlCommand 类的新实例。

公共属性

CommandText 获取或设置要对数据源执行的 Transact-SQL 语句或存储过程。
CommandTimeout 获取或设置在终止执行命令的尝试并生成错误之前的等待时间。
CommandType 获取或设置一个值,该值指示如何解释 CommandText 属性。
Connection 获取或设置 SqlCommand 的此实例使用的 SqlConnection
Container(从 Component 继承) 获取 IContainer,它包含 Component。
DesignTimeVisible 获取或设置一个值,该值指示命令对象是否应在 Windows 窗体设计器控件中可见。
Parameters 获取 SqlParameterCollection
Site(从 Component 继承) 获取或设置 Component 的 ISite。
Transaction 获取或设置在其中执行 SqlCommand 的事务。
UpdatedRowSource 获取或设置命令结果在由 DbDataAdapter 的 Update 方法使用时如何应用于 DataRow。

公共方法

Cancel 试图取消 SqlCommand 的执行。
CreateObjRef(从 MarshalByRefObject 继承) 创建一个对象,该对象包含生成用于与远程对象进行通讯的代理所需的全部相关信息。
CreateParameter 创建 SqlParameter 对象的新实例。
Dispose(从 Component 继承) 已重载。释放由 Component 占用的资源。
Equals(从 Object 继承) 已重载。确定两个 Object 实例是否相等。
ExecuteNonQuery 对 Connection 执行 Transact-SQL 语句并返回受影响的行数。
ExecuteReader 已重载。将 CommandText 发送到 Connection 并生成一个 SqlDataReader。
ExecuteScalar 执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。
ExecuteXmlReader CommandText 发送到 Connection 并生成一个 XmlReader 对象。
GetHashCode(从 Object 继承) 用作特定类型的哈希函数,适合在哈希算法和数据结构(如哈希表)中使用。
GetLifetimeService(从 MarshalByRefObject 继承) 检索控制此实例的生存期策略的当前生存期服务对象。
GetType(从 Object 继承) 获取当前实例的 Type。
InitializeLifetimeService(从 MarshalByRefObject 继承) 获取控制此实例的生存期策略的生存期服务对象。
Prepare 在 SQL Server 的实例上创建命令的一个准备版本。
ResetCommandTimeout 将 CommandTimeout 属性重置为其默认值。
ToString(从 Object 继承) 返回表示当前 Object 的 String。

公共事件

Disposed(从 Component 继承) 添加事件处理程序以侦听组件上的 Disposed 事件。

受保护的属性

DesignMode(从 Component 继承) 获取一个值,用以指示 Component 当前是否处于设计模式。
Events(从 Component 继承) 获取附加到此 Component 的事件处理程序的列表。

受保护的方法

Dispose(从 Component 继承) 已重载。释放由 Component 占用的资源。
Finalize(从 Object 继承) 已重写。允许 Object 在“垃圾回收”回收 Object 之前尝试释放资源并执行其他清理操作。

在 C# 和 C++ 中,使用析构函数语法来表示终结程序。

GetService(从 Component 继承) 返回一个对象,该对象表示由 Component 或它的 Container 提供的服务。
MemberwiseClone(从 Object 继承) 创建当前 Object 的浅表副本。

请参见

表示要对 SQL Server 数据库执行的一个 Transact-SQL 语句或存储过程。不能继承此类。

有关此类型所有成员的列表。

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         System.Data.SqlClient.SqlCommand

public sealed class SqlCommand : Component, IDbCommand, ICloneable

线程安全

此类型的所有公共静态(Visual Basic 中为 Shared)成员对多线程操作而言都是安全的。但不保证任何实例成员是线程安全的。

备注

当创建 SqlCommand 的实例时,读/写属性将被设置为它们的初始值。有关这些值的列表,请参阅 SqlCommand 构造函数。

SqlCommand 特别提供了以下对 SQL Server 数据库执行命令的方法:

说明
ExecuteReader 执行返回行的命令。为了提高性能,ExecuteReader 使用 Transact-SQL sp_executesql 系统存储过程调用命令。因此,如果用于执行像 Transact-SQL SET 语句这样的命令,ExecuteReader 可能无法获得预期效果。
ExecuteNonQuery 执行如 Transact-SQL INSERT、DELELE、UPDATE 和 SET 语句等命令。
ExecuteScalar 从数据库中检索单个值(例如一个聚合值)。
ExecuteXmlReader CommandText 发送到 Connection 并生成一个 XmlReader 对象。

如果执行 SqlCommand 的方法生成 SqlException,那么当严重度等于或小于 19 时,SqlConnection 将仍保持打开状态。当严重度等于或大于 20 时,服务器通常会关闭 SqlConnection。但是,用户可以重新打开连接并继续操作。

示例

以下示例创建一个 SqlConnection、一个 SqlCommand 和一个 SqlDataReader。该示例读取所有数据,并将其写到控制台。最后,该示例先关闭 SqlDataReader,再关闭 SqlConnection

 
public void ReadMyData(string myConnString) 
{
   string mySelectQuery = "SELECT OrderID, Customer FROM Orders";
   SqlConnection myConnection = new SqlConnection(myConnString);
   SqlCommand myCommand = new SqlCommand(mySelectQuery,myConnection);
   myConnection.Open();
   SqlDataReader myReader = myCommand.ExecuteReader();
   try 
   {
     while (myReader.Read()) 
     {
       Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1));
     }
    }
    finally 
    {
    // always call Close when done reading.
    myReader.Close();
    // always call Close when done reading.
    myConnection.Close();
    }
 }

没有可用于 C++ 或 JScript 的示例。若要查看 Visual Basic 或 C# 示例,请单击页左上角的语言筛选器按钮。