(小弟菜鸟一个,在此乱涂一篇,如发现有误,请指正,不尽感激)
图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也是手写完成的,你的意思估计是直接连接数据库修改,那是效率极为低下糟糕的方法 回复引用
不错,顶一下!虽然这么做过,但是理论知识不是和清楚,今天学习到了! 回复引用