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

时间:2014-09-20 17:15:32

标签: c# mysql

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

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())
{

}

2 个答案:

答案 0 :(得分:1)

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

    Image image = pictureBox.Image;
    MemoryStream memoryStream = new MemoryStream();
    image.Save(memoryStream, ImageFormat.Png);

    byte[] imageBt = memoryStream.ToArray();

其他部分也是一样。

答案 1 :(得分:0)

我试过这个......

        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");