2016-12-04 8 views
-4

私はデータベースに画像を保存しています。それは正常に動作しています。nullを取得します。値はバイトになります

その後、私はイメージを取得しています。

私はバイト配列を使用して、次のコードのようにデータベースからデータを取得しています。

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 - "" []は、それが空の文字列だバイトではありません。それが与えるどのようなエラー

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

だけではなく、標準的な等価比較に、ベースオブジェクトにEqualsメソッドを使用しないでください、Equals

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

、あなたは2つのオブジェクトが参照下に同じオブジェクトであるかどうかをチェックしています異なるタイプの比較です。

0

""をbyteArrayに入れることは考えられません。 ""は、null以外の文字列です。 ""をnullに置き換えて次のコードを使用し、DBNullチェックを変更してください。

byte[] pic = new byte()[??]; 
pic = (mRS.Fields["Img"] == DBNull.Value) ? null : mRS.Fields["Img"].Value; 
関連する問題