您的位置:首页 > 其它

TableAdapter、Dataset与BindingSource的关系

2012-06-08 09:40 232 查看
(小弟菜鸟一个,在此乱涂一篇,如发现有误,请指正,不尽感激)



图1:物理数据库—内存数据库库—控件的关系
TableAdapter:沟通物理数据库(database)和内存数据库(dataset),提供select,update,insert,delete四大操作

BingdingSource:将内存数据表(datatable)绑定到控件(control),并为内存数据表(datatable)提供过滤条件(Filter)和排序(Sort)两功能。注意两点:

1、可以用一个BindingSource绑定多个控件,实现不同控件数据的联动。例如,有一DataTable(学号、姓名、成绩、备注),通过一个BindingSource,将学号、姓名、成绩绑定到一个Datagridview,将备注绑定到一个Lable,在datagridview里选中不同的学生,Lable将会出现相应学生的备注信息。(如果datagridview和Lable用两个不同的BindingSource,则不能连动)

2、同一个DataTable也可通过不同的BindingSource绑定到不同的控件。

在xsd文件的设计视图下,Datatable和TableAdapter是成对出现的,如图2,有一个数据表,所以TableAdapter中自动生成一个返回行值的select语句,用来填充此数据表的,默认是Fill,GetData方法。TableAdapter中允许有多个Select(返回行值),select(返回单值),Update,Delete,Insert的查询。注意:TableAdapter中的每个返回行值的select查询,其字段要与上面的数据表的字段相对应。



图2:xsd文件可视化下的DataTable与TableAdapter
posted on 2007-10-29 18:04 nametmp 阅读(1896) 评论(7) 编辑 收藏 网摘 所属分类: Win (c#)

#1楼 2008-02-14 16:28 私家侦探 [未注册用户]
有人这样做项目啊?感觉TableAdapter这东西不灵活,一般数据访问层都是手工写的,灵活性好,如果感觉麻烦的话可以代码生成工具生成。象TableAdapter这玩意儿做的数据层,如果以后要维护都不知道如何维护呢 回复引用

一般还是手写比较灵活! 回复引用查看

@私家侦探

tableadapter是在内存里面操作最后一次提交的,手写的性能根本无法与之相比,况且tableadapter也是手写完成的,你的意思估计是直接连接数据库修改,那是效率极为低下糟糕的方法 回复引用

不错,顶一下!虽然这么做过,但是理论知识不是和清楚,今天学习到了! 回复引用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: