批处理ADO.NETSQL语句分析

了解数据库的人都知道很多数据库支持把多条命令合并或批处理成一条单一命令执行。这里就批处理ADO.NET SQL语句来和大家说说。

批处理ADO.NET SQL语句

我们先举个例子,SQL Server 使您可以用分号 (;) 分隔命令。把多条命令合并成单一命令,能减少到服务器的行程数,并提高应用程序的性能。例如,可以把所有预定的删除在应用程序中本地存储起来,然后再发出一条批处理命令调用,从数据源删除它们。虽然这样做确实能提高性能,但是,当对 DataSet 中的数据更新进行管理时,可能会增加应用程序的复杂性。要保持简单,可能要在 DataSet 中为每个 DataTable 创建一个 DataAdapter。

用多个表填充 DataSet

如果使用批处理ADO.NET SQL语句检索多个表并填充 DataSet,***个表用指定给 Fill 方法的表名命名。后面的表用指定给 Fill 方法的表名加上一个从 1 开始并且增量为 1 的数字命名。例如,如果运行下面的代码:

 
 
 
  1. 'Visual Basic
  2. Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection)
  3. Dim ds As DataSet = New DataSet()
  4. da.Fill(ds, "Customers")
  5. //C#
  6. SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection);
  7. DataSet ds = new DataSet();
  8. da.Fill(ds, "Customers");

来自 Customers 表的数据放在名为 "Customers" 的 DataTable 中。来自 Orders 表的数据放在名为 "Customers1" 的 DataTable 中。

填充完 DataSet 之后,可以很容易地把 "Customers1" 表的 TableName 属性改为 "Orders"。但是,后面的填充会导致 "Customers" 表被重新填充,而 "Orders" 表会被忽略,并创建另外一个 "Customers1" 表。为了对这种情况作出补救,创建一个 DataTableMapping,把 "Customers1" 映射到 "Orders",并为其他后面的表创建其他的表映射。例如:

 
 
 
  1. 'Visual Basic
  2. Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection)
  3. da.TableMappings.Add("Customers1", "Orders")
  4. Dim ds As DataSet = New DataSet()
  5. da.Fill(ds, "Customers")
  6. //C#
  7. SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection);
  8. da.TableMappings.Add("Customers1", "Orders");
  9. DataSet ds = new DataSet();
  10. da.Fill(ds, "Customers");

<

本文名称:批处理ADO.NETSQL语句分析
转载来于:http://www.csdahua.cn/qtweb/news7/339157.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网