Как загрузить и вывести картинку? SQL бд
В бд я создал поле blob и при сохранении изображения оно всегда сохраняется в 3 байта, и при следующем открытии программы оно выдает ошибку "Parameter is not valid"
Вот код загрузки
DB db = new DB();
db.openConnection();
MySqlCommand cmd; MySqlDataAdapter da;
String qry = "SELECT * FROM users WHERE id =1";
cmd = new MySqlCommand(qry, db.getConnection());
da = new MySqlDataAdapter(cmd);
DataTable table = new DataTable();
da.Fill(table);
byte[] img = (byte[])table.Rows[0][5];
MemoryStream ms = new MemoryStream(img);
pictureBox1.Image = Image.FromStream(ms);
da.Dispose();
Вот код сохранения
try
{
DataTable table = new DataTable();
DB db = new DB();
MemoryStream ms = new MemoryStream();
pictureBox1.Image.Save(ms, pictureBox1.Image.RawFormat);
byte[] img = ms.ToArray();
db.openConnection();
MySqlCommand command = new MySqlCommand("UPDATE users SET image = '@Im' WHERE id=1", db.getConnection());
MySqlParameter mediumblob = new MySqlParameter("@Im", MySqlDbType.Blob, img.Length);
mediumblob.Value = img;
command.Parameters.Add("@Im", MySqlDbType.Blob);
command.Parameters["@Im"].Value = mediumblob;
if (command.ExecuteNonQuery() == 1)
{
MessageBox.Show("saved");
}
else
{
MessageBox.Show("no saved");
}
db.closeConnection();
}
catch (Exception)
{
throw;
}