1、构造函数
(1)public SqlCommand()
基构造函数将所有字段初始化为它们的默认值。 下表显示 SqlCommand 实例的初始属性值。
属性 | 初始值 |
空字符串 ("") | |
30 | |
CommandType.Text | |
Null |
通过单独调用属性,可以更改这些属性值中的任何一个。
(2)public SqlCommand(string cmdText)
用查询文本初始化 SqlCommand 类的新实例
(3)public SqlCommand (string cmdText,
SqlConnection connection)
初始化具有查询文本和 SqlConnection 的 SqlCommand 类的新实例
2、常用属性
(1)public SqlConnection Connection { get; set; }
获取或设置 SqlCommand 的此实例使用的 SqlConnection。
(2)public override string CommandText { get; set; }
获取或设置要对数据源执行的 Transact-SQL 语句、表名或存储过程。
(3)public override CommandType CommandType { get; set; }
获取或设置一个值,该值指示如何解释 CommandText 属性。
CommandType枚举值
成员名称 | 说明 |
Text | SQL 文本命令。 (默认。) |
StoredProcedure | 存储过程的名称。 |
TableDirect | 表的名称。 |
备注:当 CommandType 属性设置为 StoredProcedure 时,CommandText 属性应设置为要访问的存储过程的名称。CommandType 属性设置为 TableDirect 时,应将 CommandText 属性设置为要访问的表的名称。 如果已命名的任何表包含任何特殊字符,那么用户可能需要使用转义符语法或包括限定字符。 当您调用“执行”(Execute) 方法之一时,将返回命名表的所有行和列。 为了访问多个表,请使用逗号分隔的列表(没有空格或空白),其中包含要访问的多个表的名称。 当 CommandText 属性命名多个表时,返回指定表的联接。
3、使用SqlCommand的三种方法执行Sql语句
(1)public override int ExecuteNonQuery()
对连接执行-SQL语句并返回受影响的行数。在使用SqlCommand对象向数据库发送增、删、改命令时,通常使用该方法执行发送的Sql语句
对于 UPDATE、INSERT 和 DELETE 语句,返回值为该命令所影响的行数。 如果正在执行插入或更新操作的表上存在触发器,则返回值包括受插入或更新操作影响的行数以及受一个或多个触发器影响的行数。 对于其他所有类型的语句,返回值为 -1。 如果发生回滚,则返回值也是 -1。
异常 | 条件 |
在对锁定的行执行该命令期间发生了异常。 如果使用的是 Microsoft .NET Framework 1.0 版,将不会生成该异常。 |
(2)public override Object ExecuteScalar()
执行查询,并返回查询所返回的结果集中第一行的第一列。如果结果集为空则返回空引用。通常与聚合函数一起使用
异常 | 条件 |
在对锁定的行执行该命令期间发生了异常。 如果使用的是 Microsoft .NET Framework 1.0 版,将不会生成该异常。 |
(3)public SqlDataReader ExecuteReader()
将 CommandText 发送到 Connection 并生成一个包含数据的 SqlDataReader对象的实例
异常 | 条件 |
在对锁定的行执行该命令期间发生了异常。 如果使用的是 Microsoft .NET Framework 1.0 版,将不会生成该异常。 | |
连接的当前状态为关闭。 ExecuteReader 需要打开的 SqlConnection。 |