Я вытягиваю данные из поля изображения сервера MS SQL. Массив байтов формируется так:
public byte[] saveImageBlob(string number)
{
string strSql = "select pic from emp where number like '" + number + "'";
SqlCommand cmd = new SqlCommand(strSql, conn);
SqlDataReader MyReader = cmd.ExecuteReader();
if (MyReader.Read())
{
byte[] m_MyImage = (byte[])MyReader["pic"];
return m_MyImage;
}
return null;
}
Затем я вызываю массив в моей функции page_load и помещаю его в файловый поток следующим образом
Employee emp = new Employee();
emp.getEmployee(Request.QueryString["user"]);
string file_name = System.AppDomain.CurrentDomain.BaseDirectory + "/img/" + emp.Number.ToString() + ".bmp";
System.IO.FileStream _FileStream = new System.IO.FileStream(file_name, System.IO.FileMode.Create, System.IO.FileAccess.Write);
_FileStream.Write(emp.Picture, 0, emp.Picture.Length);
_FileStream.Close();
Класс сотрудника делает только передачу данных между page_load и моим классом БД.
Файл сохраняется в нужном месте с правильным именем, и размер выглядит правильно.
Но я не могу открыть его или посмотреть картинку. Файл поврежден.
Клиент сказал мне, что поле изображения на сервере sql содержит изображения BMP.
Я немного растерялся, кто-нибудь имел опыт работы с BLOB-объектами mssql?
Есть ли способ узнать, не повреждено ли поле изображения / блоб в БД?
Мне не хватает чего-то важного в моем коде?
С уважением, ССГ.