如何在没有imagepath的情况下将picturebox图像保存到mysql数据库中

本文关键字:保存 图像 picturebox mysql 数据库 情况下 imagepath | 更新日期: 2023-09-27 18:23:36

我只是想知道是否可以在没有图像路径的情况下将图像保存到数据库中,例如,已经分配到图片框中的默认图像。这是我使用的需要图像位置的示例代码。

byte[] imageBt = null;
FileStream fstream = new FileStream(this.txtImage.Text, FileMode.Open, FileAccess.Read);
BinaryReader br = new BinaryReader(fstream);
imageBt = br.ReadBytes((int)fstream.Length);
conn.Open();
MySqlCommand command = new MySqlCommand("insert into images(image)values(@IMG)", conn);
command.Parameters.Add(new MySqlParameter("@IMG", imageBt));
reader = command.ExecuteReader();
MessageBox.Show("Saved");
while (reader.Read())
{
}

如何在没有imagepath的情况下将picturebox图像保存到mysql数据库中

您可以使用MemoryStream将图像从PictureBox保存到字节数组

    Image image = pictureBox.Image;
    MemoryStream memoryStream = new MemoryStream();
    image.Save(memoryStream, ImageFormat.Png);
    byte[] imageBt = memoryStream.ToArray();

其他部分也一样。

我试过这个。。。

        MemoryStream ms = new MemoryStream();
        pictureBox1.Image.Save(ms, ImageFormat.Png);
        byte[] pic_arr = new byte[ms.Length];
        ms.Position = 0;
        ms.Read(pic_arr, 0, pic_arr.Length);
        conn.Open();
        MySqlCommand cmd = new MySqlCommand("insert into images(image, name)values(@img,@imgName)", conn);
        cmd.Parameters.AddWithValue("@imgName", txtName.Text);
        cmd.Parameters.AddWithValue("@img", pic_arr);
        int n = cmd.ExecuteNonQuery();
        conn.Close();
        MessageBox.Show("COmplete");