c#中关于数据集dataset和dataadpter的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 01:30:43
我的问题比较大(可能高手觉得比较菜,小弟刚学希望可以得到大虾们的帮助啊!) 我翻阅了好多材料,不是很明白dataset和dataadpter,问题有几个如下:
1.当程序进行到填充dataadpter.fill(数据集对象,数据集中的表名)时候请问是否数据库已经和内存数据集建立了连接,用dataadpter连接数据库为什么没有了open和close难道是自动的开关?
2.当更新数值返回数据库时候dataadapter.update(数据集对象,数据集的表名)这句话是更新了数据集的表还是更新了数据库中的表?如果是数据库中的表那么怎么确定更新数据库中哪个表??
3.我知道dataadapter有SelectCommand、InsertCommand、DeleteCommand、UpdateCommand属性,这些属性代表了什么?仅仅是sql语句?具体的执行流程是什么呢?
4.sqlcommandbuilder builder = new sqlcommandbuilder(已经创建的dataadapter对象)这里为什么要把()里添加已经创建的dataadapter对象,是为了dataadapter的几个属性吗??

先说这么多了,我说下哦!各位大虾,程序我都能试验过好多次,按照语法一步步操作可以实现,但是我就是不明白这几个语法的含义,包括具体的流程,实在是很费解,希望各位帮帮忙!会追加分数的 谢谢!!
就是去了MSDN还不明白,所以才没有办法 想请教大家呢!希望大家帮忙

回答的你的问题,记得拿分来。
1:怎么会没有OPNE和CLOSE呢?这里你要搞明白ADO。NET的意义,sqlconnestion是不管你是dataadpter还是SQLcommand都要用的,必需要OPEN才做下一步的操作。
2:没有UPDATE的话就是只更新数据集里的数据,有UPDATE的话是即更新数据集又更新数据库里的数据。一个是存放在数据库里一个是存放在内存里,有UPDATE则2个都更新,没有则是更新内存里的数据,你也可以理解为虚拟数据,就不是真实的数据。
3:这些属性代表的是对数据库进行的操作,如果你只对数据集操作用不到这些,就比如我回答的2里面如果你要数据集更新后还要同步更新数据库里的数据那就需要这些数据了。
4:是的!

1.其实这个可以形象的想象下哈,dataadpter相当搬运工,他把从运输工(comm对象)那里的数据放到一个箱子(dataset)中,至于数据库和内存建立联系的问题。在实例化dataadpter的时候应该就已经开始了吧!dataadpter是有open和close的,只是他在和comm打交道时会自动处理。也就是说你在fill方法调用后就开始执行close了。这个步骤在微软写dataadpter类时已经做了,所以不需要程序员再做。当然你写了也不会报错滴
2\3\4...下面的就不好说了。。你试着从微软开发这个语言的角度思考问题,会容易很多哈~还有就是亲自写代码实践。。忽忽~睡觉

看书,一个是对象,一个是方法

这个问题都会围绕着新手,我建议你一个程序多次写,每次运行的时候要设置断点,这样的话,数据流程你就会知道了,有些东西是自可意会不可言传的,你要多写一些与数据库连接的小程序,就会明白了!

去MSDN..