无法将类型为'System.DBNull'的对象强制转换为'System.Byte []'

时间:2014-01-11 08:00:42

标签: c#

我有这段代码:

UploadImageControl1.BinaryData =ServiceInfoDt["SERVICE_LOGO"]!=null?(byte []) ServiceInfoDt["SERVICE_LOGO"]:null;

BinaryData是一个字节数组byte[]

买我收到此错误:

Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.

1 个答案:

答案 0 :(得分:5)

您应该使用System.DBNull.Value代替null

  

如果数据库字段缺少数据,则可以使用DBNull.Value属性向字段显式分配DBNull对象值。但是,大多数数据提供商会自动执行此操作。

因此使用

UploadImageControl1.BinaryData = 
    ServiceInfoDt["SERVICE_LOGO"]!= System.DBNull.Value 
    ? (byte []) ServiceInfoDt["SERVICE_LOGO"]
    : null;

阅读What is the difference between null and System.DBNull.Value?