【问题标题】:Set column in datagrid to invisible将数据网格中的列设置为不可见
【发布时间】:2011-10-13 15:14:34
【问题描述】:

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

        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);

很遗憾,这不是一个有效的命令。如果你能看到我在做什么,请帮助我。谢谢!

附言- 带有 C#.net 的 Winforms。具有 OLEDB 数据库类型(访问)的 Visual Studio 2010

【问题讨论】:

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


    【解决方案1】:

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

    在代码中,当您加载 datagridview 时,您将指定您希望不可见的列

    dataGridView1.Columns[14].Visible = false;
    

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

    从弹出对话框中,您可以显示/隐藏您想要的任何列。

    【讨论】:

    • 哇,这很容易。不知道我从来没有想过我可能有什么,但由于某种原因它当时没有用。谢谢!
    【解决方案2】:

    您是否尝试设置数据网格的可见属性? 示例:

    dataGridView1.Columns[14].Visible = false;

    【讨论】:

      猜你喜欢
      • 2013-08-10
      • 2011-11-29
      • 2015-10-10
      • 2018-12-20
      • 2011-11-01
      • 1970-01-01
      • 2016-02-27
      • 2013-09-27
      • 1970-01-01
      相关资源
      最近更新 更多