A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨礼文 中级黑马   /  2012-4-21 21:25  /  2105 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

这部分内容是入学自学视频中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秒,优化后只用一两秒

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

3 个回复

倒序浏览
内容太长了    只能写成日记了   这是连接 http://bbs.itheima.com/home.php? ... orward=1&id=652
回复 使用道具 举报
学习了谢谢!!
回复 使用道具 举报
关于连接的open是不是写在创建TableAdapter之前?
如果想批量操作提高效率可以操作之前先自己Open为什么可以提高效率
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马