无法处理动态DataGridView的默认错误对话框(多个NULL值)

时间:2016-06-22 07:46:08

标签: c# winforms datagridview dbnull

工作简介:

我在DataGridView事件中填充了button_click。 (根据在文本框中输入的SQL查询,将填充DataGridView

private void button1_Click(object sender, EventArgs e)
{
        string strSQLQuery = textBox1.Text.Trim();

        SqlDataAdapter dataAdapter = new SqlDataAdapter(strSQLQuery, strCon);
        SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
        DataTable dt = new DataTable();
        dt.Locale = System.Globalization.CultureInfo.InvariantCulture;
        dataAdapter.Fill(dt);
        dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);
        dataGridView1.ReadOnly = true;
        dataGridView1.DataSource = dt;
        bool flag = false;
        if (!dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].IsNewRow)
        {
            foreach (DataGridViewCell cell in dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells)
            {
                if (cell.Value == System.DBNull.Value)
                    flag = true;
            }
        }
        if(flag)
             MessageBox.Show("Many cells are empty");
}

ISSUE:

如果行中的所有列都不包含NULL值,则此方法非常有效。 但是,如果在行的任何单元格中找到一个或多个NULL值,我会在代码中看到消息框"Many cells are empty"。当我尝试移动水平滚动条(我用来显示更多列)时,我得到以下DataGridView默认错误对话框。

enter image description here

尝试解决方案:

我尝试了以下解决方案。但没有人能解决这个问题。请考虑帮助解决这个问题。

LINK 1 - MSDN - DataGridViewDataErrorEventArgs

LINK 2 - 社交MSDN网站

LINK 3 - StackOverflow

中经过验证的答案

LINK 4 - Experts-Exchange

中所有建议和验证的答案

我还尝试使用以下方法避免弹出此错误。但这似乎无法解决问题。

private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
    e.Cancel = true;
}

初步信息

  • IDE: Visual Studio 2010专业版

  • .Net:版本4.0

  • 使用的语言: C#

  • 数据库: SQL Server 2008

1 个答案:

答案 0 :(得分:1)

尝试使用其他系统。这对我来说非常适合。

同样清理并重建解决方案并重新启动IDE。或者尝试清除系统的缓存,临时文件。

IDE:Visual Studio 2013

.Net:4.0