winform中DataGrid的数据更新原理(用WebService提供的DataSet),该如何解决


winform中DataGrid的数据更新原理(用WebService提供的DataSet)
我的项目还在用VS   2003做.使用Web   Service得到一个DataSet,然后绑定到DataGrid上(是WinForm的DataGrid).一段时间后我需要刷新DataGrid的数据源.
我发现刷新数据源时如果直接从Web   Service再次得到一个DataSet,将DataGrid的DataSource设为该DataSet,运行时会发生错误(具体是 "xxx数据行不属于yyy数据表 ",但实际上xxx数据行肯定是属于yyy数据表的),即使先将DataGrid的DataSource设为null也没有用(此时DataGrid会变空,新的数据集没有被绑定上去).
后来在 < <Windows   Forms程序设计> > 上查到,象这种情况,需要将现有数据集清空,然后将新得到的数据集中的数据拷到现有数据集中即可,即:
dataSet1.Clear();
dataSet1.Merge(newDataSet);
我试了果然就可以了.
但是我实在是没理解这么做的道理,为什么直接用下面的代码不起作用,绑定会丢失呢
DataSet   newDataSet   =   myWebService.GetDataSet();
dataGrid1.SetDataBinding(newDataSet, "tablename ");
请知道的xd给我说说啊!
谢谢!!!

C#语言 .net 程序开发

流汁D豆沙包 11 years, 4 months ago


不太清楚的说。。。对这样的理论性的东西一向不知道怎么回答……
回头要好好学习这些了

小小bEe answered 11 years, 4 months ago


应该不会。
你Null了DataGrid ,然后再给的是新的DS因该没有问题。
怀疑可能是你的DS取得时候有问题。

无辜的路人甲 answered 11 years, 4 months ago


当你没有初始化dataSet1的时候再次调用好像里面的数据就乱了吧。所以每次用的时候都要在之前清空,然后再把数据转到dataSet1里面

懒趴趴D修也 answered 11 years, 4 months ago


好像DataSet与数据库保持握手连接。。。。。。。。
你看一下《ADO.NET2.0高级编程》上面很详细

第六条银河 answered 11 years, 4 months ago

Your Answer