【问题标题】:dbnull exception when null value in DB数据库中的空值时出现 dbnull 异常
【发布时间】:2018-02-14 04:44:32
【问题描述】:

当我获取一个值并将一个值存储在长变量 DBNULL 中时发生异常。因为表中的该列具有空值,我如何也可以获得该 NULL 值。任何人都可以帮助我

if (dt.Rows.Count > 0)
        {
            foreach (DataRow dr in dt.Rows)
            {

                long linvs = Convert.ToInt64(Convert.ToDecimal(dr["individualsize"]));
                long uds = Convert.ToInt64(Convert.ToDecimal(dr["dataspace"]));
                long avds = Convert.ToInt64(Convert.ToDecimal(dr["amemory"]));

                dr["individualsize"] = BytesToString(linvs);
                dr["dataspace"] = BytesToString(uds);
                dr["amemory"] = BytesToString(avds);

            }

【问题讨论】:

  • "individualsize"是DB中的字段名,值为NULL
  • 你的问题毫无意义,就像我不明白你想说什么
  • "individualsize" 数据空间,amemory 是 DB 中具有 NULL 值的字段名称,我需要在 gridview 中显示所有值,但“用户代码未处理 invalidcastexception”此异常正在发生

标签: dbnull


【解决方案1】:

您可能必须检查该变量的结果是否为 DBNULL,如果是,则将您的变量设置为 NULL。

虽然您不能将 long 分配为 null...除非您在设置之前将其设为 Java 类 Long。

希望对大家有所帮助......

【讨论】:

  • 一些候选人对该字段具有价值,而另一些则没有。即使在 null 中我也需要获取所有值
  • 我很困惑...所以你不能在查找 DBNULL 时检查它们?然后将你的变量设置为 null 如果它是?
  • 我是一个在现有项目中工作的新手。我有点无法理解那些字段数据类型为 Varchar 的 DB 中的编码。在此页面中,他们正在显示该表,但是当我检查行“long linvs = Convert.ToInt64(Convert.ToDecimal(dr["individualsize"]));”处的断点时,出现“invalidcastexception 未被用户代码处理”
  • 我也无法检查,该字段中的值为空
  • 如何在转换为 long 之前将 null 字段转换为零
猜你喜欢
  • 2015-11-29
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多