请教,c# dataGridView列的显示和隐藏条件设置
请教,c# dataGridView列的显示和隐藏设置
在c# winform中,dataGridView控件设置列显示。
数据库字段有  id,bianhao,name,jifen
dataGridView的列名字有: 用户ID, 编号,名称,积分
打开窗体时,判断数据库中字段 jifen等于1的数据在dataGridView显示出来,并且同时判断,bianhao包含0
就在dataGridView中显示列名为,(编号)的这个列,否则隐藏dataGridView列名为(编号)的这个列。
例如1:
数据库表
id  bianhao  name  jifen
1    1025    小李   1
2    3325    小南   5
3    0256    小红   1
4    1565    笑笑   9
现在,打开窗体。
dataGridView显示列名:
用户ID  编号  名称  积分
1       1025  小李   1
3       0256  小红   1
效果就是这样,因为,判断积分为1的才显示,并且,编号包含0的才显示  列名(编号)
请看例2,就隐藏编号这个列名了。
例如2:
数据库表
id  bianhao  name  jifen
1    1234    小李   1
2    1235    小南   5
3    1236    小红   2
4    1237    笑笑   9
现在,打开窗体。
dataGridView显示列名:
用户ID    名称  积分
1         小李   1
这次,列名为:(编号)的隐藏了,因为数据库字段中的:(bianhao) 中没有找到包含0的数字
所以,dataGridView中,只显示列名为:
用户ID  名称  积分
现在,请教各位写个代码,怎么样做才能达到以上的效果。
谢谢!
------解决方案--------------------1、你返回要绑定的Dataset,就已经要是一个判断过的数据集了。
可以在数据库产生一个使用了ROW_NUMBER ( )函数的临时表,然后,where bianhao like'0%' or like'%0%' or like'0%',这样就是返回bianhao有0的记录。
如果返回的dataset.table[0].rows.count=0,说明没有返回有0的,那么动态构造datagridview的列,就不要构造bianhao列了。
2、那个datagrdibview,的列,你要根据返回的内容,动态添加,而不是直接绑定,就可以了。
3、积分为1的,类似。
------解决方案--------------------
 // DataTable rd;
           //看你那编号可以已0开头应该是字符
           rd.DefaultView.RowFilter="(bianhao like '%0%')";
           DataRow[] drow=rd.Select();
           if (drow.Length > 0)
           {
               //设置隐藏
               //如果是自动生成列就调用
              //  rd.Columns.Remove;
               //否则设置 编号列的 visable属性为false
           }
           //绑定数据