具体使用ADO.NET操作相关技巧

开发 后端
学习讨论ADO.NET操作DataReader是为已连接好的数据访问设计的,也要不断适应这个趋势,我认为Vs.Net 2010只会使我们的工作更简单和更轻松。

 ADO.NET操作都可能产生一个或多个提供者错误。随着每个错误的发生这是因为现在数据是顺序返回的,并且DataReader一旦读过该数据,该数据就不再可用。下面进行学习研究。

使用CommandBuilder的***实践

假设SelectCommand执行单一表SELECT,CommandBuilder就会以DataAdapter的SelectCommand属性为基础自动生成DataAdapter的InsertCommand、UpdateCommand、和DeleteCommand属性。下面是为获得***性能而使用CommandBuilder的一些技巧。

1) CommandBuilder的使 ADO.NET操作用应该限制在设计时或即席方案中。生成DataAdapter命令属性所必需的处理会影响性能。如果预先知道INSERT/UPDATE/DELETE语句的内容,就显式设置它们。一个比较好的设计技巧是,为INSERT/UPDATE/DELETE命令创建存储过程并显式配置DataAdapter命令属性以使用它们。

2) CommandBuilder使用DataAdapter的SelectCommand属性确定其他命令属性的值。如果DataAdapter的SelectCommand本身曾经更改过,确保调用RefreshSchema以更新命令属性。

3) 如果DataAdapter命令属性为空(命令属性默认情况下为空),CommandBuilder仅仅为它生成一条命令。如果显式设置了命令属性,CommandBuilder不会重写它。如果希望CommandBuilder为以前已经设置过 ADO.NET操作的命令属性生成命令,就将命令属性设置为空。 #t#

批处理SQL语句

很多数据库支持将多条命令合并或批处理成一条单一命令执行。例如,SQL Server使您可以用分号“;”分隔命令。将多条命令合并成单一命令,能减少到服务器的行程数,并提高应用程序的性能。例如,可以将所有预定的删除在应用程序中本地存储起来,然后再发出一条批处理命令调用,从数据源删除它们。

虽然这样做确实能提高性能,但是,当 ADO.NET操作对DataSet中的数据更新进行管理时,可能会增加应用程序的复杂性。要保持简单,可能要在DataSet中为每个DataTable创建一个DataAdapter。

用多个表填充DataSet

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

用DataReader检索二进制大对象(BLOB)时,应该将CommandBehavior.SequentialAccess传递给ExecuteReader方法调用。因为DataReader的默认行为是每次Read都将整行加载到内存,又因为BLOB值可能非常大,所以结果可 ADO.NET操作能由于单个BLOB而使大量内存被用光。SequentialAccess将DataReader的行为设置为只加载请求的数据。然后还可以使用GetBytes或GetChars控制每次加载多少数据。

责任编辑:chenqingxiang 来源: 博客园
相关推荐

2009-12-31 11:11:42

ADO.NET组件

2009-12-30 11:13:28

ADO.NET操作

2009-12-21 17:39:02

ADO.NET操作

2009-12-22 09:50:23

ADO.NET学习

2009-12-24 14:45:32

ADO.NET程序

2009-12-21 17:35:24

ADO.NET对象

2009-12-21 13:59:03

ADO.NET特性

2009-12-25 16:26:03

ADO.NET控制

2009-12-22 15:20:25

ADO.NET功能

2009-12-25 10:25:59

2009-12-22 16:35:11

ADO.NET控件

2009-10-29 10:34:31

ADO.NET使用技巧

2009-12-29 16:56:40

ADO.NET类和接口

2009-12-22 10:15:17

ADO.NET规则

2009-12-29 14:24:40

使用ADO.NET

2009-12-22 16:10:21

ADO.NET框架

2009-12-23 15:13:15

Ado.Net Syb

2009-10-29 11:08:20

ADO.NET Dat

2009-12-21 14:39:09

ADO.NET技巧

2009-11-12 12:39:16

ADO.NET Sta
点赞
收藏

51CTO技术栈公众号