当前位置:首页 > 网络编程 > WEB编程 > ASP.net >  使用ADO.NET的最佳实践 5

 使用ADO.NET的最佳实践 5

点击次数:25 次 发布日期:2008-11-26 11:18:48 作者:源代码网
源代码网推荐      使用CommandBuilder的最佳实践
源代码网推荐  
源代码网推荐    假设SelectCommand执行单一表 SELECT,CommandBuilder就会以DataAdapter的SelectCommand属性为基础自动生成DataAdapter的 InsertCommand、UpdateCommand、和DeleteCommand属性。下面是为获得最佳性能而使用CommandBuilder 的一些技巧。
源代码网推荐  
源代码网推荐    1) CommandBuilder的使用应该限制在设计时或即席方案中。生成DataAdapter命令属性所必需的处理会影响性能。如果预先知道 INSERT/UPDATE/DELETE语句的内容,就显式设置它们。一个比较好的设计技巧是,为INSERT/UPDATE/DELETE命令创建存储过程并显式配置DataAdapter命令属性以使用它们。
源代码网推荐  
源代码网推荐    2) CommandBuilder使用DataAdapter的SelectCommand属性确定其他命令属性的值。如果DataAdapter的SelectCommand本身曾经更改过,确保调用RefreshSchema以更新命令属性。
源代码网推荐  
源代码网推荐    3) 如果DataAdapter命令属性为空(命令属性默认情况下为空),CommandBuilder仅仅为它生成一条命令。如果显式设置了命令属性, CommandBuilder不会重写它。如果希望CommandBuilder为以前已经设置过的命令属性生成命令,就将命令属性设置为空。
源代码网推荐  
源代码网推荐    批处理SQL语句
源代码网推荐  
源代码网推荐    很多数据库支持将多条命令合并或批处理成一条单一命令执行。例如,SQL Server使您可以用分号“;”分隔命令。将多条命令合并成单一命令,能减少到服务器的行程数,并提高应用程序的性能。例如,可以将所有预定的删除在应用程序中本地存储起来,然后再发出一条批处理命令调用,从数据源删除它们。
源代码网推荐  虽然这样做确实能提高性能,但是,当对DataSet中的数据更新进行管理时,可能会增加应用程序的复杂性。要保持简单,可能要在DataSet中为每个DataTable创建一个DataAdapter。
源代码网推荐  
源代码网推荐    用多个表填充DataSet
源代码网推荐  
源代码网推荐    如果使用批处理SQL语句检索多个表并填充DataSet,第一个表用指定给Fill方法的表名命名。后面的表用指定给Fill方法的表名加上一个从1开始并且增量为1的数字命名。例如,如果运行下面的代码:
源代码网推荐  
源代码网推荐  "Visual Basic
源代码网推荐  Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection)
源代码网推荐  Dim ds As DataSet = New DataSet()
源代码网推荐  da.Fill(ds, "Customers")
源代码网推荐  
源代码网推荐  //C#
源代码网推荐  SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection);
源代码网推荐  DataSet ds = new DataSet();
源代码网推荐  da.Fill(ds, "Customers");
源代码网推荐  
源代码网推荐    来自Customers表的数据放在名为“Customers”的DataTable中。来自Orders表的数据放在名为“Customers1”的DataTable中。
源代码网推荐  
源代码网推荐    填充完DataSet之后,可以很容易地将“Customers1”表的TableName属性改为“Orders”。但是,后面的填充会导致 “Customers”表被重新填充,而“Orders”表会被忽略,并创建另外一个“Customers1”表。为了对这种情况作出补救,创建一个 DataTableMapping,将“Customers1”映射到“Orders”,并为其他后面的表创建其他的表映射。例如:
源代码网推荐  
源代码网推荐  "Visual Basic
源代码网推荐  Dim da As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection)
源代码网推荐  da.TableMappings.Add("Customers1", "Orders")
源代码网推荐  Dim ds As DataSet = New DataSet()
源代码网推荐  da.Fill(ds, "Customers")
源代码网推荐  
源代码网推荐  //C#
源代码网推荐  SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers; SELECT * FROM Orders;", myConnection);
源代码网推荐  da.TableMappings.Add("Customers1", "Orders");
源代码网推荐  DataSet ds = new DataSet();
源代码网推荐  da.Fill(ds, "Customers");  做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。
源代码网推荐


源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华