【问题标题】:Checking for null value (Empty Cell) in Excel file检查 Excel 文件中的空值(空单元格)
【发布时间】:2015-09-01 14:51:14
【问题描述】:

我想统计 Excel 表格中空单元格的数量。

我读取了所有 Excel 工作表的双精度值,但我无法计算空值,因为下面的代码可能不起作用。

string path_connection = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + testbox_bath.Text + ";Extended Properties=\"Excel 12.0 Xml;HDR=YES\"";

OleDbConnection connection = new OleDbConnection(path_connection);

OleDbDataAdapter adapter_STDsamverkan = new OleDbDataAdapter("Select [Kvalitetsklass (null)],[Std samverkan (null)]" + "from [Sheet1$]", connection);

DataTable dt_STDsamverkan = new DataTable();

adapter_STDsamverkan.Fill(dt_STDsamverkan);

for (int i = 0; i < dt_STDsamverkan.Rows.Count; i++)
{    
   if (dt_STDsamverkan.Rows[i].Field<double>(1) == null)
   {
        STDsamverkan_count2++;
   }
}

IF 语句的提示是

表达式的结果总是“假”,因为一个类型的值 'double' 永远不等于 'double' 类型的 'null'?

我该怎么办?

【问题讨论】:

  • 您几乎肯定要检查与 null 不同的 DBNull; DBNull 表示某事没有数据; null 表示某些东西不存在
  • 感谢@ryanyuyu 和@Plutonix。我曾尝试使用dt_STDsamverkan.Rows[i].Field&lt;double&gt;(1) == DBNull.Value,但不起作用。我得到:表达式的结果总是“假”,因为“双”类型的值永远不等于“双?”类型的“空”?
  • 如何处理从 Excel 表中读取的双精度值?

标签: c# excel


【解决方案1】:

我在读取数据表时使用 Double。双精度可以为空。

这个问题的答案在下面的链接下:

double and null in c#

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-03
    • 2013-06-08
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多