【问题标题】:What .NET method has this error message: "Object cannot be cast from DBNull to other types"什么 .NET 方法有此错误消息:“无法将对象从 DBNull 转换为其他类型”
【发布时间】:2010-04-29 08:01:56
【问题描述】:

什么.NET方法有这个错误信息:“Object cannot be cast from DBNull to other types”

堆栈跟踪已从我的日志中删除,因此我正在寻找一个起点。

答案:

  • Convert.ToInt32: "对象不能从 DBNull 转换为其他类型。"
  • VB 的CInt:“从'DBNull' 类型到'Integer' 类型的转换无效。”
  • C# 的(int):“指定的转换无效。”
  • Int32.Parse(x.ToString()): "输入字符串格式不正确。"

【问题讨论】:

  • 全部。这是一个作业引发的异常。
  • 不正确。我已经确定了四种不同的错误消息,用于将 DBNull 不正确地转换/转换为 Int32。

标签: .net


【解决方案1】:

它可能是 Convert.To_ 方法或类似的方法,但我不知道这会让您深入了解如何找到它。但是,当您尝试使用从数据库中获得的值(并且它为 null)时会引发此错误,因此我将首先查看您从何处获取数据。

【讨论】:

  • 是的,Reflector 显示,此消息来自 System.Convert 类(至少这是其中之一)。消息文本存储在 mscorlib.dll 的资源中
  • 是的,就是那个。谢谢。
【解决方案2】:

在我看来,您正试图从 DataReader/DataTable/ResultSet 中提取数据并将其绑定到文本字段或 Web 控件项。

通常您需要在执行此类绑定之前测试 IsDBNull,否则您将收到指定的错误消息。

【讨论】:

  • 我知道我应该检查空值。我要问的是哪种转换/转换方法具有该特定消息,以便我可以找到错误的代码并修复它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-04
  • 2013-08-23
  • 2012-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多