那么你就不用直接绑定,通过sql获取到表格内容填充至dataset后自己写代码将dataset里面的内容填充至datagridview里,这样就能够变换datagridview的显示。
比如说,从数据库获得的dataset是你这样的
A D
- -
C -
- -
- X
D -
而你要让datagridview第一次显示成这样
C -
D -
- -
- -
- X
思路就是遍历dataset的datatable的第一列,当不为空时直接复制在datagridview里,为空放在另外一个datatable里,遍历完后就把另外的datatable追加在datagridview,这样datagridview显示出来的就是
C -
D -
- -
- -
- X
。
如果你点击第二列表头时要显示出第二列数据的第一行不为空,道理也是如此,就遍历dataset的datatable的第二列,当不为空时直接复制在datagridview里,为空放在另外一个datatable里,遍历完后就把另外的datatable追加在datagridview,这样datagridview显示出来的就是
- X
- -
C -
- -
D -。
于是你就可以把填充datagridview的代码写成一个通用的方法,假如是paixu(列参数),传入参数则为第几列,load里默认第一列排序,在表头点击事件里就对应传参数就行了。这样你程序运行后默认是第一列为空的在后面,当你点击不同列的表头时,就会更新datagridview,将对应列的不为空的行按照顺序显示出来。