【问题标题】:I want to check if datagridview column is having data or null/empty我想检查 datagridview 列是否有数据或空/空
【发布时间】:2021-08-17 05:38:38
【问题描述】:

我想检查存储在列 [2] 中的 datagridview 值是否为空或 null。

如何访问 datagridview 列?

string[] row = new string[]
{ 
  Convert.ToString(dataReader[0]),
  Convert.ToString(dataReader[1]),
  Convert.ToString(dataReader[2]),
  Convert.ToString(dataReader[3])
};
dataGridView1.Rows.Add(row);

【问题讨论】:

  • 您可以检查是否为cell.Value is string,然后检查是否为string.NullOrEmpty(cell.Value),根据需要解析所有重复的列,或者一个或多个特定行,如SelectedRows。跨度>
  • 您的代码可以引用DataGridView 中的单个单元格,例如... datagridview1.Rows[rowIndex].Cells[colIndex].Value。您可以通过调用单元格Value.ToString() 方法来获取string 值……但是……您应该在尝试调用其ToString 方法之前检查Value 是否为null……if (datagridview1.Rows[rowIndex].Cells[colIndex].Value != null) {…}
  • 如果Valuenull,那么如果您尝试调用Value.ToString(),您的代码将抛出异常。如果Value 不是null,那么它可能包含一个空值并且可以像...if (string.IsNullOrEmpty(datagridview1.Rows[rowIndex].Cells[colIndex].Value.ToString()) { ... } 一样检查。重点是,在调用 ToString 方法之前,您应该检查并确保 Value 不是 null

标签: c# .net windows forms


【解决方案1】:

使用此代码,您可以从 DataGridView 访问列

foreach (DataGridViewColumn col in dataGridView1.Columns)

但要检查空值,您应该检查单元格而不是列,因此只需添加另一个 for 来计算行数并检查特定列的每个单元格

您的代码将如下所示:

for (int colCounter=0 ; colCounter<dataGridView1.Columns.Count; colCounter++)
 for(int rowCounter=0 ; rowCounter<dataGridView1.Rows.Count ; rowCounter++)
   if(DataGridView1.Rows[rowCounter].Cells[colCounter].Value.tostring()==null)
    //your code

【讨论】:

    【解决方案2】:

    我认为您需要使用循环将这些数据添加到您的 datagridview 中,如下所示:

    foreach(var data in row)
    {
        dataGridView1.Rows.Add(data);
    }
    

    【讨论】:

    • 我添加了这样的数据。现在我想检查每一列是否为空/空或有值。我的程序中有些列是空的。如果它为空或 null 我想显示消息框
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-04-11
    相关资源
    最近更新 更多