私はこのクエリを持っています:
SELECT PICTURE FROM LOGO WHERE LOGONO = ?
(「PICTURE」はSQL Serverの画像列です)
そして、データを読み取るためのこのコード:
using (DbDataReader reader = command.ExecuteReader())
{
if (reader.HasRows)
{
if (!reader.IsDBNull(0))
{
byte[] buffer = new byte[8000];
while (reader.GetBytes(0, 0, buffer, 0, 8000) > 0)
picture.AddRange(buffer);
}
}
}
問題は、InvalidOperationException(「行/列のデータが存在しません」)が、列にnullが含まれている場合、常にreader.IsDBNull(0)ステートメントでスローされることです。
MSDNによると:
エラーが発生しないように、型指定されたgetメソッド(たとえば、GetByte、GetCharなど)を呼び出す前に、このメソッドを呼び出してnull列値があるかどうかを確認してください。
例外をトリガーせずに列にnullが含まれていないことを確認するにはどうすればよいですか?私はこれについて間違った方法で行っていますか?