将datagrid中的列设置为不可见

时间:2011-07-26 17:44:14

标签: c# sql winforms visual-studio-2010 ado.net

我想知道如何在我的数据网格中设置一个不可见的列。这是一些代码...

        else if (combo_View.Text == "Orders")
        {

            da.SelectCommand = new OleDbCommand("SELECT * FROM TestQuery WHERE (VendorName = @VendorName OR @VendorName = '') AND (CustomerName = @CustomerName OR @CustomerName = '')  AND ((@From IS NULL AND @To IS NULL) OR orderDate BETWEEN @From AND @To) AND (ItemNum = @ItemNum OR @ItemNum = '') AND (PO = @PO OR @PO = '') ORDER BY CustomerName", cs);

            da.SelectCommand.Parameters.Add("@VendorName", OleDbType.VarChar).Value = combo_VendorView.Text.ToString();
            da.SelectCommand.Parameters.Add("@CustomerName", OleDbType.VarChar).Value = combo_CustomerView.Text.ToString();

            if (!chk_viewAllDates.Checked)
            {
                da.SelectCommand.Parameters.Add("@From", OleDbType.Date).Value = "#" + tp_viewFrom.Value.Date.ToString("M/d/yyyy") + "#";
                da.SelectCommand.Parameters.Add("@To", OleDbType.Date).Value = "#" + tp_viewTo.Value.Date.ToString("M/d/yyyy") + "#";
            }

            else
            {
                da.SelectCommand.Parameters.Add("@From", OleDbType.Date).Value = DBNull.Value;
                da.SelectCommand.Parameters.Add("@To", OleDbType.Date).Value = DBNull.Value;
            }

            da.SelectCommand.Parameters.Add("@PO", OleDbType.VarChar).Value = txt_POLookup.Text.ToString();
            da.SelectCommand.Parameters.Add("@ItemNum", OleDbType.VarChar).Value = combo_ItemNumLookup.Text.ToString();

            dsB.Clear();
            da.Fill(dsB);

            tblEditBS.DataSource = dsB.Tables[0];
            dgv_DataLookup.DataSource = tblEditBS;



        }

第14列索引是订单ID /主键。我不想显示它但我必须将它包含在我的sql中才能使我的编辑功能正常工作。我想要这样的东西

dsB.Clear();
dsB.Tables[0].Columns[14].Visible = false;
da.Fill(dsB);

不幸的是,这不是一个有效的命令。如果你能看到我想要做什么,请帮助我。谢谢!

P.S。 - 使用C#.net进行Winforms。带有OLEDB数据库类型(访问)的Visual Studio 2010

2 个答案:

答案 0 :(得分:3)

您是否尝试过设置datagrid的Visible-Property? 例如:

dataGridView1.Columns [14] .Visible = false;

答案 1 :(得分:1)

你可以通过两种方式做到这一点。

在您要指定列的代码中,您希望在加载datagridview

时不可见
dataGridView1.Columns[14].Visible = false;

如果您的datagridview分配了数据源,您也可以从datagridview中的properties执行此操作。转到datagriview的设计视图,选择您的datagridview。打开它的属性,选择Columns

enter image description here

在弹出对话框中,您可以显示/隐藏所需的任何列。

enter image description here