2016-12-04 57 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;