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

Sor*_*ora 0 c#

我有这个代码:

UploadImageControl1.BinaryData =ServiceInfoDt["SERVICE_LOGO"]!=null?(byte []) ServiceInfoDt["SERVICE_LOGO"]:null;
Run Code Online (Sandbox Code Playgroud)

BinaryData 是一个字节数组 byte[]

买我收到这个错误:

Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.
Run Code Online (Sandbox Code Playgroud)

Sat*_*pal 5

您应该使用System.DBNull.Value而不是null

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

因此使用

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

阅读null和System.DBNull.Value有什么区别?