您的位置: turnitin查重官网> 计算机 >> 数据结构 >技巧.NET平台下TypedDataSet运用策略和技艺

技巧.NET平台下TypedDataSet运用策略和技艺

收藏本文 2024-02-13 点赞:6197 浏览:20131 作者:网友投稿原创标记本站原创

摘要:DataSet是ADO.NET两大组件之一,程序员在使用DataSet在开发中往往会出现编程复杂、容易出错并且调试困难等问题,该文通过研究Typed DataSet的应用,探讨了Typed DataSet的优点、开发方法与使用技巧,以提高此类应用程序设计和运行的效率。
关键词:DataSet;Typed DataSet;ASP.NET;TableAdapter
1009-3044(2012)33-7931-02
ADO.NET是一组面向.NET程序员公开数据访问怎么写作的类,为创建分布式数据共享应用程序提供了一组丰富的组件。DataSet对象是支持ADO.NET的断开式、分布式数据方案的核心成员之一,但是DataSet从数据库中读取数据时,所得到的数据都是未经实例化的对象,设计和运行效率都比较低,而Typed DataSet提前定义了一些自己的列与表的泛型DataSet,这样编译器已经知道它们将会包含什么内容,从而简化了开发流程,生成可伸缩性的多层数据库应用程序。
1 Typed DataSet的优点
Typed DataSet根据事先定义好的Data Schema生成数据集,并对数据集中的字段实行强类型的约束,对DataTable的操作进行了封装。从数据库中读取数据填充到弱类型的DataSet时,是将数据行和列作为集合中的项公开了,所以需要通过位置索引(运行效率稍次)或字段名(运行效率最低)来引用,如ds.Tables[“Persons”].Rows[0][“UserName”]=”aaa”,如果列名写错了,写成了UseName,在编译时不会发现错误,只有在程序运行时才会提示:“列“UseName”不属于表 Persons”,因此,程序员在开发应用程序时必须记住列名,设计和运行效率都比较低。而Typed DataSet则是将数据集中的行和列作为对象的属性公开,可以根据对象的强类型属性名称来访问表和字段的值,adapter.GetData()[0].UserName=”aaa”,这样不仅避免了字段写错的情况,还大大提高了程序的运行效率。
DataTable中的数据类型只是在运行时进行类型检查,DataRow类的索引器显示为Object数据类型,代码在设计期间可以将任何数据类型的值赋值给该列,而编译器并不知道究竟会不会成功。从DataSet中检索的数据同样也是Object数据类型,引用时必须进行强制类型转换,string username= Convert.ToString(ds.Tables[“Persons”].Rows[0][“UserName”])。而Typed DataSet提供了类型检查,在设计时通过自定义字段名对字段进行智能感知,强类型对象的强类型属性都有明确的数据类型,在设计期间,编译器就可以检测出类型不兼容的问题,确保类型安全。
在为多张表创建Typed DataSet时,即Typed DataSet中包含多数据集,这多张表如果在数据库中已经建好了关系和约束,或者在XSD中对这些数据集建立了关系和约束,那么Type DataSet会生成相应的方法来反映这些关系和约束。但是在UnTyped DataSet中,需要自己来做,而且Typed DataSet填充数据的速度较快。
2 Typed DataSet的使用方法
Typed DataSet表现为一系列的类,包括派生于DataSet的Typed DataSet,派生于DataTable的Typed DataTable,派生于DataRow的Typed DataRow。创建Typed DataSet比较简单,使用VS提供的拖放工具就可以创建,先新建一个网站MyWebSite,然后在该站点上右击→“添加新项”→“数据集”,输入名字“DataSetLogin.xsd”,然后从怎么写作器资源管理器中将要创建数据集的表T_Login拖放到设计界面就完成了Typed DataSet的创建,并将数据库的连接字符串写入了Web.Config文件中,同时还生成了SelectCommand、InsertCommand、UpdateCommand和DeleteCommand等属性,可以通过T_LoginTableAdapter对象的GetData()、Insert()、Update()和Delete()等方法来执行相应的操作。但是Typed DataSet所提供的方法很少,远远不能满足开发应用程序的需要,所以可以在Typed DataSet中添加自定义的SQL语句,在设计器的TableAdapter中右击→“添加查询”,或是在DataTable上右击→“添加”→“查询”,可以通过SQL语句、新的或现有的存储过程去访问数据库。使用SQL语句访问数据库可以通过select返回行或返回单个值、update、delete、insert等类型来访问。
但是,在使用Typed DataSet开发应用程序时,如果需要添加自定义的SQL语句并选择通过SQL语句返回行时,需要注意生成Typed DataSet的那张表中最好所有的字段都选择,也就是使用默认选择或select *,如果只选择自己所关心的字段时,必须把定义该表时设置为非空、添加了约束的字段都选上,否则就会出现“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值”这样的错误。
3 使用Typed DataSet进行批量操作
使用Typed DataSet进行批量操作时,比较耗时,因为生成的强类型的TableAdapter默认的每次调用方法都需要打开连接,执行代码、关闭连接,在对类型化的TableAdapter的Insert等方法进行跟踪时发现previousConnectionState属性,代码显示如果在操作之前连接状态没有打开才打开,操作之前连接状态是关闭才关闭,所以,需要在操作之前将手动的将连接打开,批量操作结束之后再关闭,这样批量操作就在一个连接中进行了,可以极大的提高执行效率。
4 结束语
Typed DataSet在开发应用程序的过程中弥补了DataSet容易出现代码复杂、易出错、调试困难、在编译期间难以发现错误、安全性比较低等弱点,虽然在执行时类型不能更改,但使用Typed DataSet对SQL语句进行了封装,快速的建立了数据访问层,使开发者可以更加关注业务逻辑,提高开发和运行效率。
参考文献:
 丁士锋,朱毅,杨明羽.精通C#3.0与.NET3.5高级编程-LINQ.WCF.WPF.WF[M].北京:清华大学出版社,2009.
 艾维耶.ASP.NET4高级编程-涵盖C#和VB.NET[M].北京:清华大学出版社,201

摘自:毕业论文目录www.udooo.com

0.

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号