Почему мое изображение (из базы данных) не отображается должным образом в моем PictureBox?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему мое изображение (из базы данных) не отображается должным образом в моем PictureBox?

Сообщение Anonymous »

Я сохраняю свое изображение следующим образом:

Код: Выделить всё

//This is in my ImageConverter class:
public static byte[] ConvertImageToByteArray(Image userImage) //Get bytes of the image
{
using (MemoryStream ms = new MemoryStream())
using (Bitmap tempImage = new Bitmap(userImage))
{
tempImage.Save(ms, userImage.RawFormat);
return ms.ToArray();
}
}

//this is in my save button:
sqlCmd.Parameters.Add("@user_image", SqlDbType.VarBinary, 8000).Value =
ImageConverter.ConvertImageToByteArray(pictureBox1.Image);
Я получаю свое изображение, нажимая на datagridview следующим образом:

Код: Выделить всё

private void dgvEmpDetails_CellClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if (e.RowIndex != -1)
{
//Display user image
using (SqlConnection con = new SqlConnection(connectionStringConfig))
using (SqlCommand sqlCmd = new SqlCommand(
"SELECT user_image FROM dbo.Employee_Image
WHERE employee_id=@employee_id", con))
{
con.Open();
sqlCmd.Parameters.Add("@employee_id",
SqlDbType.NVarChar).Value = EmployeeId;

using (SqlDataReader reader = sqlCmd.ExecuteReader())
{
if (reader.HasRows)
{
reader.Read();
pictureBox1.Image = ImageConverter.
ConvertByteArrayToImage((byte[])(reader.GetValue(0)));
}
else
{
pictureBox1.Image = null;
}
}
}
}
}
catch (Exception ex)
{
MessageBox.Show($"Something is wrong with the selected record!
\nError: { ex.Message  }");
}
}

//This is in my ImageConverter class:
public static Image ConvertByteArrayToImage(byte[] buffer) //Get image from database
{
using (MemoryStream ms = new MemoryStream(buffer))
{
return Image.FromStream(ms);
}
}
ПРИМЕЧАНИЕ. Я не показываю двоичные данные изображения в представлении datagridview.
Сохранение и обновление изображения ( с записями пользователей) работает нормально.
После сохранения изображения в базу данных оно отображается неправильно. Но когда я загружаю его с помощью OpenFileDialog, изображение отображается нормально.
Загрузка изображения с помощью OpenFileDialog:
Изображение

Когда я щелкаю строку datagridview, чтобы просмотреть запись пользователя, вот как выглядит PictureBox:
Изображение

Почему это разделение какой-то? Я не видел подобной проблемы/решения по этому поводу. Большинство из них посвящено «Загрузке изображения из базы данных в PictureBox». Но я это уже сделал.

Подробнее здесь: https://stackoverflow.com/questions/666 ... picturebox
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»