我现在新建了一个datagridview
我需要读取文件...然后显示文件中的数据(这个我已经写好了)
我的办法是把文件读入一个datatable...然后用datagridview去显示这个datatable...我现在碰到了这样的一个问题假如一个文件A有如下数据
NumA   NumB
1      2
3      1
4      6
6      7
9      3文件B有如下数据
NumA   NumC
2      3
3      2
5      5
7      5
8      2我先打开了文件A...gridview有如下显示
NumA   NumB
1      2
3      1
4      6
6      7
9      3然后我再打开文件B的时候...我希望gridview显示
NumA   NumB   NumC
1      2
2             3
3      1      2
4      6
5             5
6      7
7             5
8             2
9      3也就是说两个文件NumA是共同的列...(但是A的分布在两个文件中各不相同)
我同时打开A和B以后
对于A...进行一种排序的添加,并且无数据的地方显示为空白
(我这么说,结合上面的例子大家应该对我想进行的操作理解了吧)我的想法是...先把文件B存在一个临时的datatable的Temp里...
然后比较B的第一列和A的第一列,对A的那个table进行插入
最后让gridview去接收新的table进行显示
结果今天想了一天也没实现...所以请教各位了...
谢谢...

解决方案 »

  1.   

    呵呵,也许是我不理解你的意思,我觉得,你没有这个必要这么错,你说的A和B是文件还是数据库表,如果是表的话用数据集就可以做了,一个SELECT语句就可以实现了
    要是文件的话那我就不知道了!!
      

  2.   

    额...还有啊...datagridview加载10W行两列的数据好慢啊...能优化吗?
      

  3.   

    方法:
    1.把二个文件的数据读入二个DATATABLE中.
    2.在第一个DATATABLE中新建一个列对象并加入,类型和第二个DATATABLE中NUMC相同
    3.循环第二个DATATABLE,首先找找NUMA的值在每个DATATABLE中是否存在,若存在,找到该行,更新NUMC,
      若不存,则新建一行,对NUMA,NUMC赋值,然后把行加入到第一个DATATABLE中.
    此时,第一个DATATABLE中的数据应该是你所要的.备注:   1.若你需要保存第一个DATATABLE里的值,你可以新建一个DATATABLE,然后使用MERGE方法把第一个DATATABLE里的数据合并到新建的DATATABLE里.
       2.在合并时,最好指定关键字,列名相同的按关键字来区分以最新的数据来更新.
      

  4.   

    dtbA.PrimaryKey = new DataColumn[] { dtbA.Columns["NumA"] };
    dtbB.PrimaryKey = new DataColumn[] { dtbB.Columns["NumA"] };
    dtbB.Merge(dtbA,false);
      

  5.   

    把文件A读到DataSetA中,处理DataSetA,给他加一列NumberC,然后把文件B在添加到DataSetA中,最后对DataSetA排序。
      

  6.   

    据说数据量有这么大嘛1W到10W之间我也知道一次性显示10W行要等好长时间的...我就是在想怎么让10W行全部显示出来却不那么卡现在一次性全部加载需要24秒,我晕了...
      

  7.   

    今天思考一天(其实是在网上到处乱串)得到的结论...分页,或者虚拟模式(virtual mode)???谢谢各位了
      

  8.   

    其实昨天我就受word启发了,觉得应该可以实现先载入一部分,然后用户边看我边继续载入PS:
    昨天我打开一份600多页的word时,刚打开的时候,右侧滚动条很长...下方状态栏显示才3页...
    但是我往下拖的时候...滚动条急剧变小...页数也不断增加微软肯定采用了某种技术才会这样的...但是我很菜,些不出来