C# 无法处理动态DataGridView的默认错误对话框(多个空值)
工作简介: 我已经在按钮点击事件上填充了DataGridView。根据在文本框中输入的SQL查询,将填充DataGridViewC# 无法处理动态DataGridView的默认错误对话框(多个空值),c#,winforms,datagridview,dbnull,C#,Winforms,Datagridview,Dbnull,工作简介: 我已经在按钮点击事件上填充了DataGridView。根据在文本框中输入的SQL查询,将填充DataGridView private void button1_Click(object sender, EventArgs e) { string strSQLQuery = textBox1.Text.Trim(); SqlDataAdapter dataAdapter = new SqlDataAdapter(strSQLQuery, strCon)
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");
}
问题:
如果行中的任何列都不包含空值,则此操作非常有效。
但是,如果在行的任何单元格中发现一个或多个空值,我会得到消息框,许多单元格都是空的,就像我的代码中一样。当我尝试移动我用来显示更多列的水平滚动条时,会出现以下DataGridView默认错误对话框
尝试过的解决方案:
我尝试了以下解决方案。但没有人能解决这个问题。请考虑帮助解决这个问题。
-MSDN-DataGridViewDataErrorEventArgs类
-社交MSDN网站
-StackOverflow中的验证答案
-专家交流中的所有建议和验证答案
我还尝试使用以下方法避免出现此错误。但这似乎并不能解决问题
private void dataGridView1_DataError(object sender, DataGridViewDataErrorEventArgs e)
{
e.Cancel = true;
}
初步信息
IDE:VisualStudio2010专业版
.Net:版本4.0
所用语言:C
数据库:SQL Server 2008
在不同的系统中尝试。这对我来说非常合适 还要清理和重建解决方案,并重新启动IDE。或者尝试清除系统的缓存、临时文件 IDE:Visual Studio 2013
.Net:4.0该消息表明查询没有问题,只是绘制了一些图像。发布更多代码。你对返回的结果做了什么?某些字段中是否有图像?数据库中未存储图像。没有涉及其他基本代码。在windows窗体中,使用一个文本字段TextBox1、一个按钮buttonbutton1和一个datagriddataGridView1。当应用程序运行时,我在textbox1中手动输入query,说select*fromtable1并点击button1,这个button1\u-click方法触发并填充datagridview。表1中的一些单元格包含NULL,它显示的错误如图所示。我尝试了上面提到的所有尝试过的解决方案,但没有任何帮助来克服/抛出这个错误。您可以在IDE中尝试这些,然后面对相同的问题。您的问题是不可再现的,也许您应该发布其他内容,以便我们可以重现您得到的错误,如table1模式和一些虚构的数据。目前这个代码对我来说很好@Akbari-我尝试了不同版本的家庭系统。它很好用。谢谢在office中使用VS2010进行的第一次尝试中,当我查询一个具有多个列15+的表时,我在datagridview中移动了水平滚动条,当时我遇到了这个错误。