ADO.NET学习笔记(4)--SqlCommand简介
SqlCommand类提供用户一个SQL操作接口,使得用户可以完成设置SQL命令、执行查询操作、获取查询结果等工作。本文首先介绍一下SqlCommand类的常用属性和方法,然后简要讲述SqlCommand对象的创建方法。由于是初学,不对之处请高手多多指教,谢谢!
一 SqlCommand类的属性
SqlCommand的属性有:CommandType、CommandText、Connection、CommandTimeout、Notification、NotificationAutoEnlist、Parameters、Transaction、UpdatedRowSource。 在此,我先简单介绍前四个属性,其他属性在后续学习中再和大家探讨。
1. CommandType
CommandType属性是一个枚举类型,其值可以是Text、StoredProcedure、TableDirect 。默认值为Text。
如果CommandType为Text ,那么此SqlCommand对象的CommandText就是要执行的SQL命令。
当CommandType设置为StoredProcedure时,CommandText存放的就是所以执行的存储过程的名称。需要注意的时,当存储过程的名称中包含空格或保留字,则需要将存储过程的名称放在方括号中 ;如果名称中包含右方括号字符,则需要将它们放在双右方括号内。因此,对于名为"My Stored Proc"的存储过程,其CommandText应为"[My Stored Proc]" ;对于名为"My[Stored]Proc"的存储过程,CommandText应为"[My[Stored]]Proc]"。 当然,存储过程名称不应当是保留字,也不应当包括空格或方括号。
TableDirect是由OLE DB引入的一个概念,利用它可以更简单地通过仅指定TableDirect的表名称和表类型就可以获取一个表中的所有行和所有列。将CommandType为TableDirect会产生一个ArgumentOutOfRangException。
2. CommandText
CommandText是一个字符串,如上所述,在不同的CommandType中,CommandText具有不同的含义。
3. Connection
Connection属性包含SqlCommand用于与数据库通信的SqlConnection对象。
4. CommandTimeout
CommandTimeout指定了Command等待查询结果第一行数据到达的超时时间(单位为秒) , 默认值为30。如果在CommandTimeout时间内仍未完成查询,则Command将引发异常。 需要说明的是,这里的超时时间是针对第一行数据到达的时间而言的,如果第一行数据在CommandTimeout 内已经到达(即已经开始返回结果) ,那么不管整个查询结果返回过程花费多长时间 ,此次查询都不会超时。也就是说,只要在CommandTimeout 内查询开始返回结果,该查询就不会超时。
二 SqlCommand类的方法
SqlCommand类的常用方法有:
1. 开始异步查询:BeginExecuteReader、BeginExecuteXmlReader、BeginExecuteNonQuery ;
2. 结束异步查询:EndExecuteReader、EndExecuteXmlReader、EndExecuteNonQuery ;
3. 执行查询操作:ExecuteReader、ExecuteScalar、ExecuteNonQuery ,其中ExecuteReader返回一个SqlDataReader对象, ExecuteScalar返回查询结果第一行第一列的数据(此方法是为查询单一值,如COUNT(*) ,的语句设计的),ExecuteNonQuery仅返回受影响的行数(此方法是为不需要返回结果集的"操作查询"设计的, 如 INSERT ,DELETE,CREATE TABLE等)。
4. 其他:Cancle、Clone、CreateParameter、Prepare、ResetCommandTimeout 。
三 SqlCommand对象的创建
.Net提供了三种创建SqlCommand对象的方法:
以下的strSQL为查询字符串,conn为用于与数据库连接的SqlConnection对象。
1. 直接创建一个新实例,然后设置适当属性:
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = strSQL;
2. 利用构造函数指定查询字符串和SqlConnection连接:
SqlCommand cmd = new SqlCommand(strSQL,conn);
3. 调用Sqlconnection类的CreateCommand方法:
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = strSQL;
四 后续学习内容
本文仅仅简单介绍了SqlCommand类的基本概念和使用方法,后续学习中将和大家更详细地讨论使用SqlCommand执行批量操作查询、XML数据的查询、在事务中执行查询、异步执行查询的各种问题。希望大家多多关注,多多帮忙指出错误,先谢过啦!呵呵!
posted on 2011-02-22 16:15 Green Billow 阅读(2986) 评论(0) 收藏 举报
浙公网安备 33010602011771号