У меня есть этот запрос:
SELECT PICTURE FROM LOGO WHERE LOGONO = ?
(«ИЗОБРАЖЕНИЕ» - столбец изображений в 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 («Нет данных для строки / столбца») всегда выдается в read.IsDBNull (0), когда столбец содержит ноль.
MSDN говорит:
Вызовите этот метод, чтобы проверить, есть ли значения столбцов с нулем, прежде чем вызывать типизированные методы get (например, GetByte, GetChar и т. Д.), Чтобы избежать возникновения ошибки.
Как я могу проверить, что столбец не содержит ноль, не вызывая исключение? Я поступаю неправильно?