黑马程序员技术交流社区

标题: ado.net中的封装 DataSet 强类型 1 [打印本页]

作者: 杨礼文    时间: 2012-4-21 21:25
标题: ado.net中的封装 DataSet 强类型 1
这部分内容是入学自学视频中ado.net没有的内容.
SqlDataAdapter是DataSet和数据库之间沟通的桥梁。数据集DataSet包含若干表DataTable,DataTable包含若干行DataRow。foreach(DataRow row in dataset.Tables[0].Rows) row["Name"]。
封装一个SQLHelper类方便使用,提供ExecuteDataTable(stringsql,params SqlParameter[] parameters)、ExecuteNonQuery(string sql,params SqlParameter[]parameters)、
ExecuteScalar(string sql,params SqlParameter[]parameters)等方法。
弱类型DataSet的缺点: 只能通过列名引用, 取到的字段的值是object类型,必须小心翼翼的进行类型转换,不仅麻烦,而且容易出错。运行时才能知道所有列名,数据绑定麻烦,无法使用Winform、ASP.Net的快速开发功能。
VS自动生成强类型DataSet
添加→新建项→数据集
将表从服务器资源管理器拖放到DataSet中。注意拖放过程是自动根据表结构生成强类型DataSet等类,没有把数据也拖过来,程序还是连的那个数据库,自动将数据库连接字符串写在了App.Config中。
强类型DataSetd 优点太多了  就不一一列出来了
需要注意的是,生成的强类型TableAdapter默认每次调用方法都是打开连接、执行、关闭连接,而如果操作之前连接已经打开则不会自动帮我们连接、关闭,因此如果想批量操作提高效率可以操作之前先自己Open,操作完毕再Close。经测试:插入三千条数据,不优化用了45秒,优化后只用一两秒

作者: 杨礼文    时间: 2012-4-21 21:34
内容太长了    只能写成日记了   这是连接 http://bbs.itheima.com/home.php? ... orward=1&id=652
作者: ︻◣㊣袏邊愛☆    时间: 2012-4-24 18:33
学习了谢谢!!
作者: 高宜    时间: 2012-6-5 22:49
关于连接的open是不是写在创建TableAdapter之前?
如果想批量操作提高效率可以操作之前先自己Open为什么可以提高效率




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2