读书笔记系列之------SqlCommander和SqlDataReader对象

来源:互联网 发布:mac 工作日程安排软件 编辑:程序博客网 时间:2024/05/18 03:04
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

一、特点介绍

⒈SqlCommand:表示要对执行的一个Transact-SQL语句或存储过程。

⒉SqlDataReader:提供一种从数据库读取只进的行流的一种方式。若要创建SqlDataReader,必须调用SqlCommand对象的ExecuteReader方法,而不直接使用构造函数。应该尽可能迅速的关闭SqlDataReader对象

⒊SqlParameter:表示SqlCommand的参数,也可以是它到DataSet列的映射。

 

二、使用介绍

⒈创建SqlCommand对象

   stringstrConn,strSQL;

   strConn=”…………”;

   strSQL=”SelectCustomerID,CompanyNamefromCustomers”;

   SqlConnectioncn=newSqlConnection(strConn);

   cn.Open();

   SqlCommandcmd;

   

   cmd=newSqlCommand();

   cmd.CommandText=strSQL;

   cmd.Connection=cn;

 

   cmd=newSqlCommand(strSQL,cn); 

⒉执行无返回行的查询:

   stringstrConn,strSQL;

   strConn=”……”;

strSQL=”UpdateCustomersSETCompanyNme=’NewName’whereCustomersID=’ALFKI’”;

   SqlConnectioncn=newSqlConnection(strConn);

   cn.Open();

   SqlCommandcmd=newSqlCommand(strSQL,cn);

   intRecordsAffercted=cmd.ExecuteNonQuery();

   if(RecordsAffercted==1)

      ……

   else

     …………

⒊用SqlDataReader对象检查查询结果:

①   获取结果

stringstrConn,strSQL;

 strConn=”……”;

   SqlConnectioncn=newSqlConnection(strConn);

 cn.Open();

 strSQL=”SelectCustomerID,CompanyNamefromCustomers”;

   SqlCommandcmd=newSqlCommand(strSQL,cn);

SqlDataReaderrdr=cmd.ExecuteReader();

   While(rdr.Read())

     Console.Writeline(rdr[“CustomerID”]+rdr[“CompanyName”]);

 Rdr.Close(); 

②   更快获取

Ⅰ使用基于序号的查找

   ……

   SqlDataReaderrdr=cmd.ExecuteReader();

   intCustomerIDOrdinal=rdr.GetOrdinal(“CustomerID”);

   intCompanyNameOrdinal=rdr.GetOrdinal(“CompanyName”);

   while(rdr.Read())

      Console.WriteLine(rdr[CustomerIDOrdinal]+rdr[CompanyNameOrdinal]);

   rdr.Close();

Ⅱ使用适当的类型指定Get方法

   ……

   SqlDataReaderrdr=cmd.ExecuteReader();

   intCustomerIDOrdinal=rdr.GetOrdinal(“CustomerID”);

  intCompanyNameOrdinal=rdr.GetOrdinal(“CompanyNameOrdinal”);

   while(rdr.Read())

      Console.WriteLine(rdr.GetString(CustomerIDOrdinal)+rdr.GetString(CompanyNameOrdinal));

   rdr.Close(); 

③获取多个结果

   …

   cn.Open();

   stringstrSQL=”selectCustomerID,CompanyNamefromCustomers;”+“selectOrderID,CustomerIDfromOrders;”;1
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
原创粉丝点击