代码改变世界

ADO.NET 2.0批量数据操作和多动态结果集

2008-07-08 01:29  BeautyLogic  阅读(242)  评论(0)    收藏  举报

  1.大批量数据操作
  
    可以利用SqlBulkCopy类快速写入大批量数据,针对SQL Server的优化,可以写入DataRow数据,DataTable,DataReader
  
    WriteToServer(DataTable)写入数据表
  
    WriteToServer(DataRow[])批次写入数据行
  
    WriteToServer(DataTable ,DataRowState)按行状态写入数据库表
  
    WriteToServer(IDataReader)写入DataReader对象
  
   string connstr = "server=(local);database=northwind;integrated security=true;async=true";
   // Fill up a DataSet
   DataSet ds = new DataSet();
   SqlConnection conn = new SqlConnection(connstr);
   SqlDataAdapter dadp = new SqlDataAdapter("select * from customers", conn);
   dadp.Fill(ds);
   // Copy the Data to SqlServer
   SqlBulkCopy bcp = new SqlBulkCopy(connstr);
   bcp.DestinationTableName = "customers1";
   bcp.WriteToServer(ds.Tables[0]);
    2.多个动态的结果集
  
    Multiple Active Result Sets(MARS)
  
    这个只能在SQL Server 2005中使用
  
    可以在一个Command对象上同时打开多个DataReader
  
   string connstr = "server=(local);database=northwind;integrated security=true;async=true";
   SqlConnection conn = new SqlConnection(connstr);
   conn.Open();
   SqlCommand cmd1 = new SqlCommand("select * from customers", conn);
   SqlCommand cmd2 = new SqlCommand("select * from orders", conn);
   SqlDataReader rdr1 = cmd1.ExecuteReader();
   // next statement causes an error prior to SQL Server 2005
   SqlDataReader rdr2 = cmd2.ExecuteReader();
   // now you can reader from rdr1 and rdr2 at the same time.  做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。

本篇文章来源于 站长中国 转载请以链接形式注明出处 网址:http://www.zzchn.com/edu/20080220/80631.shtml