问题描述
假设在页面中输出一个有两个字段(A和B)的表格,字段A的值是从A表中读取的,字段B的值是从另一个表中(也可能是多个表)通过多个字段值的计算读取的。请问如何实现在页面中能对A字段排序,也能对B字段排序
解决方案
解决方案二:
1.直接在SQL语句中使用orderby排序2.用linq或datatable.sort排序3.如果使用的控件支持排序,可以用控件排序
解决方案三:
如果数据已经存到本地内存,比如List中,你可以继承IComparable实现自己的排序方法参考
解决方案四:
直接用leftjoin,然后orderby
解决方案五:
你要输出表格的数据应该是取两个表的吧既然你能取到数据那么排序应该也只对你取到的数据排序也就是说你只需要对你取数据的方法排序就好了·
解决方案六:
建议直接在数据里面处理,给你举个例子selectA,Bfromtb1leftjointb2ontb1.ID=tb2.IDorderbyAdesc,Basc
解决方案七:
我是楼主,补充说明一下:如果只是对A字段排序很好办,用orderby就行了主要是因为b字段的数据是通过其它表中的数据计算得出的,计算方法可能比较复杂,所以不能将两个表连起来查
解决方案八:
复杂也无所谓啊,做个存储过程,管你是用视图还是临时表,最后对结果排序就好了啊或者做成嵌套查询,对查询结果再查询一次然后排序
解决方案九:
当然如果你计算是在程序里算的,而不是在数据库里算好只能对你的数据集进行排序了或者绑定到控件之后在表格中设置排序
解决方案十:
如果数据库里操作不方便就在后台对datatable进行排序呗
解决方案十一:
引用6楼zhangbiao316的回复:
我是楼主,补充说明一下:如果只是对A字段排序很好办,用orderby就行了主要是因为b字段的数据是通过其它表中的数据计算得出的,计算方法可能比较复杂,所以不能将两个表连起来查
你为什么不把这个计算写到存储过程或者函数中。在sql里面直接调用就行了?
时间: 2025-01-20 23:14:05