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

C# 如何将图像保存到数据库中?,c#,mysql,wpf,C#,Mysql,Wpf,我正在使用WPF向我的MySQL数据库插入一个图像。我可以上传文件到图像控制,但我不知道如何保存它 这是我到目前为止所做的。emp_图像是显示照片的图像控件 private void btn_save_image_click(object sender,...) { Mysqlconnection cn= new mysqlconnection(connectionstring); byte[] imagedata; imagedata=Fil

我正在使用WPF向我的MySQL数据库插入一个图像。我可以上传文件到图像控制,但我不知道如何保存它

这是我到目前为止所做的。
emp_图像
是显示照片的图像控件

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();
}

似乎您没有传递文件路径

请查收

应该是

var imagedata=File.ReadAllBytes(filepath);

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

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

“emp_img”是什么类型的与图像本身相反,最好存储图像的路径。@Nikita emp_img是一个显示图像的图像控件,我想将该图像保存到数据库表是
emp_img
正确的文件路径?@MikeEason你的意思是从openfile对话框中提供路径?这比replywbmp.SaveJpeg更好没有啤酒!是否缺少任何命名空间?System.Windows.Media.Imaginagi已经有了它。但是它说它没有包含“SaveJpeg”的定义。SaveJpeg是Windows Phone。请参阅,但将
memStream.GetBuffer()
替换为
memStream.ToArray()