如何将图像保存到数据库中

本文关键字:数据库 保存 图像 | 更新日期: 2023-09-27 18:13:38

我使用WPF插入图像到我的MySQL数据库。我可以上传文件到image control,但是我不知道如何保存。

这是我目前所做的。emp_image是显示照片的图像控件。

private void btn_save_image_click(object sender,...)   
{   
    Mysqlconnection cn= new mysqlconnection(connectionstring);    
    byte[] imagedata;    
    imagedata=File.ReadAllBytes(emp_img);  //..here is error,it says has invalid arguments..//
    mysqlcommand= new mysqlcommand("insert into dep_table(photo)values(?data)",cn);    
    cmd.parameters.addwithvalue("?data", imagedata);    
    cn.open();    
    cmd.executeNonQuery();    
    cn.close();
}

如何将图像保存到数据库中

您需要将图像源转换为字节[]:

public static byte[] ImageToArray(BitmapSource image)
{
    var encoder = new JpegBitmapEncoder();
    encoder.Frames.Add(BitmapFrame.Create(image));
    using (var stream = new MemoryStream())
    {
        encoder.Save(stream);
        return stream.ToArray();
    }
}

然后调用函数:

imagedata = ImageToArray((BitmapSource)emp_img.Source);

您似乎没有传递文件路径。

请检查File::ReadAllBytes方法

应该像

var imagedata=File.ReadAllBytes(filepath);