我写了一个存储过程,就是用来查找表的相关信息的,然后在窗体上放了一个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列了,怎么会这样呢?隐藏列怎么不见了?
请指教一下。