1
Я пытаюсь получить изображение из базы данных и отобразить в окне изображения. Мой код нижеОшибка загрузки изображения в окно с базой данных mysql. NullReferenceException
private void getImage()
{
using (MySqlConnection conn = new MySqlConnection(connectionManager.connectionString))
{
try
{
conn.Open();
string query = "SELECT 'Image' FROM student_img WHERE ID = @ID";
MySqlCommand cmd = new MySqlCommand(query, conn);
int id = 10;
cmd.Parameters.AddWithValue("@ID", id);
var da = new MySqlDataAdapter(cmd);
var ds = new DataSet();
da.Fill(ds, "Image");
int count = ds.Tables["Images"].Rows.Count;
if (count > 0)
{
var data = (Byte[])(ds.Tables["Images"].Rows[count - 1]["Image"]);
var stream = new MemoryStream(data);
picLogo.Image = Image.FromStream(stream);
}
}
catch (Exception ex)
{
MessageBox.Show("Connection Error!\n" + ex.Message, "Error Message",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
}
Но я получаю ошибку NullReferenceException. У меня также есть еще один метод, возможно, я могу использовать это как-то, но я не знаю, как я могу получить данные из базы данных, как я новичок в C#
public Image byteArrayToImage(byte[] byteArrayIn)
{
MemoryStream ms = new MemoryStream(byteArrayIn);
Image returnImage = Image.FromStream(ms);
return returnImage;
}
'Но я получаю ошибку NullReferenceException'. На какой линии? –
Почему вы храните изображение в базе данных? Базы данных не должны хранить файлы. Вы должны сохранить ссылку или ссылку на изображение в базе данных, а затем потянуть изображение с файлового сервера или веб-адреса на основе этой ссылки. – Necoras
вы заполняете таблицу с именем «Изображение», затем ссылаетесь на «Изображения». вам не нужен dataadpter и dataset и datatable для чтения одного поля из БД. несколько вещей, которые необходимо убрать – Plutonix