2016-12-04 54 views
-4

我正在图像存储在数据库中。它工作正常。得到空字节值

之后,我正在检索图像。

为此我使用字节数组从数据库中获取数据,如下面的代码。

byte[] pic = new byte(); 
pic = DBNull.Value.Equals(mRS.Fields["Img"]) ? "" : mRS.Fields["Img"].Value; 

但它给错误。

任何人都可以帮助我吗?

+3

它给了什么错误? – Aruna

+1

不认为允许将空字符串放入字节数组中 –

回答

1

有些事情错在你的代码:

1- byte[] pic = new byte[size]

2- ""不是一个byte []它是一个空字符串。

做这样的:

var pic = DBNull.Value.Equals(mRS.Fields["Img"]) ? new byte[0] : mRS.Fields["Img"].Value; 
0

不要使用基本对象Equals方法,而不是仅仅以一个标准的平等的比较:

pic = mRS.Fields["Img"].Value == DBNull.Value ? null : mRS.Fields["Img"].Value; 

随着Equals,你检查,看看是否两个对象的引用在相同的对象,是一种不同类型的比较。

0

我不认为有可能把""放入一个byteArray中。 ""是与null不同的字符串。使用下面的代码替换“”替换为空,并修改DBNull检查。

byte[] pic = new byte()[??]; 
pic = (mRS.Fields["Img"] == DBNull.Value) ? null : mRS.Fields["Img"].Value;