当前位置:编程学习 > C#/ASP.NET >>

求datagridview异步加载多个datatable的解决办法!

有40个相同结构的小表,对这些表依次查询后返回结构异步显示在一个datagridview中。求解决办法! --------------------编程问答-------------------- 这个需求蛮变态的。 --------------------编程问答-------------------- 关键这个项目使用了分表结构,大表分成小表,查询就只能这样 --------------------编程问答-------------------- 不明白你说的显示在一个里面是什么意思,只是依次轮着来显示,还是同时都显示?

--------------------编程问答-------------------- 你可以把这些表组合成一个视图,或者用子查询,至于绑定多个datatable是不行的,datagridview只能指定一个数据源 --------------------编程问答-------------------- 表有个年度顺序,查询可以不必同时查,按年度顺序依次异步显示在datagridview里就可以, --------------------编程问答-------------------- 组合成一个视图要等到最后表查询完才出结果太慢了,就是40个表查完一个就显示一个,加快速度 --------------------编程问答--------------------
引用 2 楼 seatree 的回复:
关键这个项目使用了分表结构,大表分成小表,查询就只能这样


查询就只能这样?
既然结构一样,你在SQL查询时用Union,这样只返回一个表,你再绑定datagridview

UNION 的语法如下: 

[SQL 语句 1]
UNION
[SQL 语句 2] 

--------------------编程问答-------------------- datatable.merge --------------------编程问答--------------------
引用 7 楼 scm_2008 的回复:
引用 2 楼 seatree 的回复:
关键这个项目使用了分表结构,大表分成小表,查询就只能这样


查询就只能这样?
既然结构一样,你在SQL查询时用Union,这样只返回一个表,你再绑定datagridview

UNION 的语法如下: 

[SQL 语句 1]
UNION
[SQL 语句 2]


这样就不来问了,用的数据库性能很差,分表就是为了让结果先出来,问题是datagridview只能绑定一个datatable,矛盾就出来了 --------------------编程问答--------------------
引用 5 楼 seatree 的回复:
表有个年度顺序,查询可以不必同时查,按年度顺序依次异步显示在datagridview里就可以,


哥们啊,为什么提问时你不说清楚,别人回复后你才说呢?

既然是这样,给你个思路,分页显示,一页一个年度,你这个需求太别扭了 --------------------编程问答-------------------- 哦,你是想要同屏的全部表格都显示的吧。

这个需要i自己写一个表格合并的程序,将目前得到的表格合并成一张表,然后将这张合成表放到空间里面去显示了。

但是有一点要注意的是,因为你的获取表格的方法是异步的,所以你合并表格并且赋值控件的这个步骤,你必须使用一点手段来达到同步,否则错误百出。 --------------------编程问答--------------------
引用 10 楼 scm_2008 的回复:
引用 5 楼 seatree 的回复:
表有个年度顺序,查询可以不必同时查,按年度顺序依次异步显示在datagridview里就可以,


哥们啊,为什么提问时你不说清楚,别人回复后你才说呢?

既然是这样,给你个思路,分页显示,一页一个年度,你这个需求太别扭了

这个办法是万不得已最后的办法,呵呵
求像windows里操作系统搜索文件能异步加载进datagridview的解决办法 --------------------编程问答-------------------- 简单的说就是依次查询40个相同结构的表,把结果异步显示进datagridview --------------------编程问答-------------------- 真要实现你的说法,每返回一个dt,就合并一个dt --------------------编程问答-------------------- 合并的问题在于何并一次就重新加载一次,会出现停顿,不会出现异步的效果 --------------------编程问答--------------------
引用 15 楼 seatree 的回复:
合并的问题在于何并一次就重新加载一次,会出现停顿,不会出现异步的效果


你试过了吗?
我说详细点:
1.第一个得到的dt称为allDt,这个时侯dgv.DataSource = allDt;
2.第二个返回的dt称为dt2,执行下面这样操作就行了
     foreach (DataRow row2 in dt2.Rows)
            {
                allDt.ImportRow(row2);
            }
3.以下相同。。。

补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,