C# 数据绑定时实现按某列字段或者多列字段排序

时间:2021-12-15 15:04:19
加入CSDN有段时间了,一直没有在博客上写点什么,今天弱弱地写一点自己学习中遇到的一个简单问题,这只是写给那些和我一样是IT菜鸟的童鞋,高手就没必要看了。在绑定数据时,若不想用sql语句对绑定数据进行排序,想用DataView的Sort方法排序。下面就以winform中Datagridview按照某列排序。虽然简单,希望大家不要拍砖,毕竟也是知识,呵呵。这种方法不需要自己去写排序的代码,只需在绑定数据时将DataTable的自定义视图DefaultView的Sort属性设置为你想排序的那个字段排序就行了,不仅可以设置一列,也可以设置多列,而且设置也比较灵活。这个排序方法其实就是dataview的sort方法,是根据快速排序来完成的。给出个简单的例子,

按照一列排序
DataTable dt =new DataTable();
string selsql = string.Format("select SerialNum as 流水号,PatientName as 病人姓名,CheckDate as 检查日期 from CheckRecord");
//按照检查日期这一列排序,这里只是我给CheckDate命名的一个别名,如果你没有别名dt.DefaultView.Sort = "CheckDate";
dt=Business.BLL.RunSqlDataSet(selsql).Tables[0];
dt.DefaultView.Sort = "检查日期 ASC";
this.dgv_PatientName.DataSource = dt;

按照多列排序,其实都一样,列字段之间以逗号分隔
DataTable dt =new DataTable();
string selsql = string.Format("select SerialNum as 流水号,PatientName as 病人姓名,CheckDate as 检查日期 from CheckRecord");
//按照流水号,检查日期这两列排序
dt=Business.BLL.RunSqlDataSet(selsql).Tables[0];
dt.DefaultView.Sort = "流水号 ASC,检查日期 ASC";
this.dgv_PatientName.DataSource = dt;

总之,你想按照哪一列或者哪几列排序都是可以的,而且有时候sql语句排序太长,用上述方法方便多了,而且这个适合多种绑定数据控件