日期:2014-05-17  浏览次数:20396 次

问个绑定数据的问题C# 急
现在有一个要求,用户可以输入多个产品序列号,查询检测结果。现在的逻辑使用union连接所有的序列号进行查询,结果绑在gridview上面。但是如果输入的序列号过多,比如2、3百以上,查询经常超时(表中有4亿数据,年代久远不能改了)。
我想问能否实现,不使用union,每一个序列号查询完后,绑定一次,显示在页面上。下一个序列号查询完后,再绑定一次,接着上一个序列号的返回结果后面显示在页面上。
1000个序列号就查询1000次,绑定1000次,显示1000次,这样用户体验也好,能实时看到数据返回。

如果可以实现,怎么实现绑定数据呢?如果不行,有什么好的替代方法吗?

------解决方案--------------------
union很慢,GridView自带的分页也很慢。
可以把GridView绑定到DataTable,DataTable是可以合并的,查询一次合并一次,后再绑定,分页不受影响。
------解决方案--------------------
你的想法很好。但是我不建议你再考虑asp.net编程。应该完全基于javascript来编写程序。而Asp.net页面顶多不过是下载第一个序列号的数据在<div><span>这样的嵌套数据中,然后使用脚本循环读取数据、在浏览器端产生<table><tr>。这样之后的所有序列号分别是异步ajax查询来的数据,然后逐行添加到table的末尾了。