繁体   English   中英

清空DataGridView

[英]Empty a DataGridView

我在C#中有一个datagridview,当用户单击“搜索”时,它会根据搜索条件填充客户。 我遇到的问题是,当该用户多次单击搜索按钮以搜索客户时,或者如果用户想要进行其他搜索,则最后一次搜索的所有详细信息仍在datagridview中。 现在的主要问题不是没有删除列或添加了额外的列,而是在多次搜索后,datagridview中按钮的列索引变为“ 0”。

既然我已经解决了问题,我想我将在这里保留所有详细信息,以防将来有人希望查看这些详细信息。 问题似乎是,当我删除custDataGridView.DataSource = null时; 部分,似乎一切正常

似乎有些含糊,下面是完整的代码:

        DataGridViewButtonColumn custAddJobSelect = new DataGridViewButtonColumn();
        Datatable dt = new Datatable();
        // ---> This was the culprit ---> custDataGridView.DataSource = null;
        dt.Rows.Clear();

        #region SQL connection String
        ...//CustQuery is the SQL stuff, conn is connection to DB.
        #endregion

        da = new System.Data.SqlClient.SqlDataAdapter(CustQuery, conn);
        da.Fill(dt);

        conn.Close();

        custDataGridView.DataSource = dt;


        if (AddJobGone == false)
        {

            AddJobGone = true;
            custAddJobSelect.DisplayIndex = 0;
            custDataGridView.Columns.Add(custAddJobSelect);
        }

        private void custDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == this.custDataGridView.Columns.Count - 1)
        {
            string addJobsCustNo = custDataGridView.Rows[e.RowIndex].Cells[0].FormattedValue.ToString();
            txtAddJobsCustNo.Text = addJobsCustNo;
            pnlAddJobSearchCustomer.Visible = false;
        }
    }

感谢您的耐心等待,希望对您有所帮助!

将DataSource设置为null应该可以解决问题,请确保在尝试新的搜索时正在敲击特定的代码集。 例如,将其插入自己的过程中,并在搜索开始时调用该过程以确保清除了该对象。 坦白说,除非您没有每次按下搜索按钮时都不清除DataSource的理由,否则围绕该部分代码使用条件逻辑可能毫无意义。

您的数据源到底是什么? 它是DataTable,对象/实体的列表,还是手动将行添加到DataGridView?

这可能是显而易见的,但是如果您的数据源是DataTable或列表,则应确保从列表中删除所有项目,然后再向其中添加新的搜索结果,而不是专注于DataGridView本身。

我假设您当前的DataSource = null解决方案不起作用,这将是一个明显的解释:)

我猜想您是手动添加行(dataGridView1.Rows.Add),在这种情况下,将DataSource设置为null不会做任何事情。

现在回答的问题似乎与以下问题有关:

custDataGridView.DataSource = null;

查看完整的代码,如果您可以提出其他建议,请执行:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM