我正在图像存储在数据库中。它工作正常。得到空字节值
之后,我正在检索图像。
为此我使用字节数组从数据库中获取数据,如下面的代码。
byte[] pic = new byte();
pic = DBNull.Value.Equals(mRS.Fields["Img"]) ? "" : mRS.Fields["Img"].Value;
但它给错误。
任何人都可以帮助我吗?
我正在图像存储在数据库中。它工作正常。得到空字节值
之后,我正在检索图像。
为此我使用字节数组从数据库中获取数据,如下面的代码。
byte[] pic = new byte();
pic = DBNull.Value.Equals(mRS.Fields["Img"]) ? "" : mRS.Fields["Img"].Value;
但它给错误。
任何人都可以帮助我吗?
有些事情错在你的代码:
1- byte[] pic = new byte[size]
2- ""
不是一个byte []它是一个空字符串。
做这样的:
var pic = DBNull.Value.Equals(mRS.Fields["Img"]) ? new byte[0] : mRS.Fields["Img"].Value;
不要使用基本对象Equals
方法,而不是仅仅以一个标准的平等的比较:
pic = mRS.Fields["Img"].Value == DBNull.Value ? null : mRS.Fields["Img"].Value;
随着Equals
,你检查,看看是否两个对象的引用在相同的对象,是一种不同类型的比较。
我不认为有可能把""
放入一个byteArray中。 ""
是与null
不同的字符串。使用下面的代码替换“”替换为空,并修改DBNull检查。
byte[] pic = new byte()[??];
pic = (mRS.Fields["Img"] == DBNull.Value) ? null : mRS.Fields["Img"].Value;
它给了什么错误? – Aruna
不认为允许将空字符串放入字节数组中 –