2024年4月28日发(作者:)
6.2.2 使用Command对象进行数据操作
Command对象简介
Command对象是在Connection对象连接数据库之后,对数据库执行查询、添加、删除
和修改等各种操作时使用。操作实现的方式可以使用SQL语句,也可以使用存储过程。根
据所用的.NET Framework数据提供程序的不同,Command对象也可以分成4种,分别是
SqlCommand、OleDbCommand、OdbcCommand和OracleCommand,根据本书编排下面我们
着重介绍一下SqlCommand。
SqlCommand对象常用属性
SqlCommand对象常用属性如下:
属 性
CommandText
CommandType
Connection
CommandTimeout
Parameters
说 明
获取或设置要执行的语句或存储过程
获取或设置一个值,该值指示如何解释CommandText属性
获取或设置命令使用的连接对象。默认为空
获取或设置试图执行命令时要等待的时间(以秒为单位)默认为30秒
获得与该命令关联的参数集合
表6.3 SqlCommand对象常用属性
SqlCommand对象的常用属性详解:
CommandType属性
获取或设置Command对象要执行命令的类型。
语法:public override CommandType CommandType {get; set;}
属性值:CommandType值之一,默认为 Text。
当将 CommandType 设置为 StoredProcedure 时,应将 CommandText 属性设置为存储
过程的名称。当调用 Execute 方法之一时,该命令将执行此存储过程。
CommandText属性
获取或设置要对数据源执行的Transact-SQL语句或存储过程。通过Command对象执行
SQL语句或存储过程。
语法:public override string CommandText { get; set; }
SqlCommand对象常用方法
SqlCommand对象常用方法如下:
方 法
ExecuteNonQuery
ExecuteScalar
ExecuteReader
说 明
执行SQL语句并返回受影响的行数
执行查询,并返回查询所返回的结果集中第一行的第一列,忽略其他列或行
执行返回数据集的SELECT语句
表6.4 SqlCommand对象常用方法
SqlCommand对象常用方法详解:
ExecuteNonQuery方法
ExecuteNonQuery方法执行诸如UPDATE、INSERT和DELETE语句有关的更新操作,
在这些情况下,返回值是命令影响的行数。对于其他类型的语句,诸如SET或CREATE语
句,则返回值为-1;如果发生回滚,返回值也为-1。
语法:public override Object ExecuteNonQuery ()
例如,创建一个SqlCommand,然后使用ExecuteNonQuery方法执行(queryString代表
Transact-SQL语句如,UPDATE、INSERT或DELETE),代码如下:
private static void CreateCommand(string queryString,string connectionString)
{
SqlConnection connection = new SqlConnection(connectionString))
SqlCommand command = new SqlCommand(queryString, connection);
();
eNonQuery();//执行Command命令
}
ExecuteReader方法
ExecuteReader方法通常与查询命令一起使用,并且返回一个数据阅读器对象
SqlDataReader类的一个实例。数据阅读器是一种只读的、向前移动的游标,客户端代码滚
动游标并从中读取数据(下节将具体介绍数据阅读器)。如果通过ExecuteReader方法执行一
个更新语句,则该命令成功地执行,但是不会返回任何受影响的数据行。
例如,创建一个SqlCommand,然后应用ExecuteReader()方法来创建DataReader对象来
对数据源进行读取,代码如下:
SqlCommand command = new SqlCommand(queryString, connection);
//通过ExecuteReader方法创建DataReader对象
SqlDataReader reader = eReader();
while (())
{
ine(("{0}", reader[0]));
}
ExecuteScalar方法
执行查询,并返回查询所返回的结果集中第一行的第一列
语法:public override Object ExecuteScalar ()
如果只想检索数据库信息中的一个值,而不需要返回表或数据流形式的数据库信息。例
如,只需要返回 COUNT(*)、SUM(grade) 或 AVG(grade) 等聚合函数的结果,那么Command
对象的ExecuteScalar方法就很有用。如果在一个常规查询语句当中调用该方法,则只读取
第一行第一列的值,而丢弃所有其他值。
例如,使用SqlCommand对象的ExecuteScalar方法来返回表中记录的数目(SELECT
语句使用Transact-SQL COUNT聚合函数返回指定表中的行数的单个值),代码如下:
string sqlstr = "SELECT Count (*) FROM tbStudent";
SqlComand studentCMD = new SqlCommand(sqlstr,connection);
发布评论