我写了一个存储过程,就是用来查找表的相关信息的,然后在窗体上放了一个checkbox,选上的话就把某些列也查出来,如果不选,那几列就不显示。当然是连同datagridView的列也隐藏掉。(是通过一个按钮来显示)
代码大概如下:sql = string.Format("exec pOrderTotal '" + DataAccessLayer.help.fEmtCode + "', 'SO','" + dtix1.Text + "','" + dtix2.Text + "'," + Convert.ToInt32(checkBox1.Checked));
try
{
if (checkBox1.Checked)
{
dataGridViewX1.Columns["fProvCustCode"].Visible = dataGridViewX1.Columns["fProvCustName"].Visible = true;
}
else
dataGridViewX1.Columns["fProvCustCode"].Visible = dataGridViewX1.Columns["fProvCustName"].Visible = false;
dt = db.GetDataTable(sql);
dataGridViewX1.DataViewEx.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}fProvCustCode,fProvCustName就是根据情况显与不显示的列,第一次操作的时候(显示与不显示)是没有问题,当进行第二次操作时,我选上了不显示按“查询”,也能正常显示,但再按一次查询时,就出错了,原来整个datagridView是有10列的,但出错后,datagridView只剩下8列了,怎么会这样呢?隐藏列怎么不见了?
请指教一下。
代码大概如下:sql = string.Format("exec pOrderTotal '" + DataAccessLayer.help.fEmtCode + "', 'SO','" + dtix1.Text + "','" + dtix2.Text + "'," + Convert.ToInt32(checkBox1.Checked));
try
{
if (checkBox1.Checked)
{
dataGridViewX1.Columns["fProvCustCode"].Visible = dataGridViewX1.Columns["fProvCustName"].Visible = true;
}
else
dataGridViewX1.Columns["fProvCustCode"].Visible = dataGridViewX1.Columns["fProvCustName"].Visible = false;
dt = db.GetDataTable(sql);
dataGridViewX1.DataViewEx.DataSource = dt;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}fProvCustCode,fProvCustName就是根据情况显与不显示的列,第一次操作的时候(显示与不显示)是没有问题,当进行第二次操作时,我选上了不显示按“查询”,也能正常显示,但再按一次查询时,就出错了,原来整个datagridView是有10列的,但出错后,datagridView只剩下8列了,怎么会这样呢?隐藏列怎么不见了?
请指教一下。
解决方案 »
- VS2010中用C#开发Windows程序,Combox从数据库表读数据问题
- [WPF]刚刚开始学习WPF,请问如何高效率反复调用一组图片
- 求解如何进一步深入学习编程
- C#窗体中如何自动更换某一个图案?
- 急,连接字符串问题
- winform System.Data.Linq.DataContext”在未被引用的程序集中定义。必须添加对程序集“System.Data.Linq, Ve
- 测试一些阈值问题
- C#组件!继承.NET的ComboBox,如何屏蔽下拉列表并换成用DataGrid替代?有代码示例最好。
- 再线求救!
- PictureBox vs Delete...
- 网站平台之间实时传递数据,在线等..
- C# Process.Kill结束进程
只需设置你dgv的某些列Visible 属性为假就行.
dataGridViewX1.DataViewEx.DataSource=null;