Rami Zoarob Ответов: 1

Привет, я получаю этот messgae "буфер не может быть нулевым. Буфер имени параметра" при извлечении изображения из базы данных


Привет, я получил это сообщение "буфер не может быть нулевым. буфер имени параметра"
когда я получаю изображение из базы данных

Что я уже пробовал:

bool check = false;
 _db.CloseConnect();
 SqlCommand com = new SqlCommand();
 com.CommandType = CommandType.StoredProcedure;
 com.Connection = _db.sqlcon;
 _db.OpenConnect();
 com.CommandText = "Pro_FindBarcodeByNo";
 com.Parameters.Add("@No", SqlDbType.Int).Value =NoBarcode;
 SqlDataReader read = com.ExecuteReader();
 if (read.Read())
 {
     NoBarcode = Convert.ToInt32(read[0].ToString());
     BarcodeName = Convert.ToDecimal(read[1].ToString());
     imag = (byte[])read[2];
     if (imag == null)
     {
         ImageBarcode = null;
     }
     else
     {
         MemoryStream ms = new MemoryStream(imagcode);
         ImageBarcode = Image.FromStream(ms);
     }

F-ES Sitecore

Какая строка выдает ошибку? Что такое "imagcode"?

1 Ответов

Рейтинг:
0

OriginalGriff

Без вашей базы данных мы действительно не сможем вам помочь, если вообще сможем.
Так что все будет зависеть от тебя.
К счастью, у вас есть инструмент, который поможет вам выяснить, что происходит: отладчик. Если вы не знаете, как его использовать, то быстрый Google для "Visual Studio debugger" должен дать вам необходимую информацию.

Поместите точку останова в первую строку функции и запустите код через отладчик. Затем посмотрите на свой код и на свои данные и определите, что должно произойти вручную. Затем по одному шагу в каждой строке проверяйте, что то, что вы ожидали, произойдет именно так, как и произошло. Когда это не так, тогда у вас есть проблема, и вы можете вернуться назад (или запустить ее снова и посмотреть более внимательно), чтобы выяснить, почему. Предположение - и это все, что может быть, не видя вашего кода запущенным - read[2] возвращает DBNUll, и в этом случае пришло время проверить вашу БД, значение NoBarcode и SP, чтобы выяснить, почему!

Извините, но мы не можем сделать это за вас - пришло время вам освоить новый (и очень, очень полезный) навык: отладку!