C# 使用c以BLOB格式显示存储在MySql数据库中的图像#

C# 使用c以BLOB格式显示存储在MySql数据库中的图像#,c#,mysql,C#,Mysql,我使用以下函数将图像存储在db中 void SaveImage(byte[] image) { MySqlConnection con = new MySqlConnection(db);//new connection is made con.Open(); string cmdText = "INSERT INTO Picture(RoomNo ,pic )VALUES ('&quo

我使用以下函数将图像存储在db中

 void SaveImage(byte[] image)
        {
            MySqlConnection con = new MySqlConnection(db);//new connection is made
            con.Open();

                string cmdText = "INSERT INTO Picture(RoomNo ,pic )VALUES ('" + RoomNo.Text + "',?Image)";
                MySqlCommand cmd = new MySqlCommand(cmdText, con);
                cmd.Parameters.Add("?Image", image);
                cmd.ExecuteNonQuery();
         
        }
大体上,我是这样调用函数的

 using (var ms = new MemoryStream())
            {
                picbox.Image.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                SaveImage(ms.ToArray());
            }

我不知道如何在图片框中显示它。。有人能帮我吗?

使用图像方法(FromStream)设置图像框


使用图像方法(FromStream)设置图像框


您正在使用Windows窗体吗?您必须将字节数组转换为图像,以便在图片框中显示它

public Image byteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    Image returnImage = Image.FromStream(ms);
    return returnImage;
}
你们是如何把图像转换成字节数组的。我希望这个问题不存在。您可以使用:

  private byte[] ImageToByteArray(string ImageFile)
    {
        FileStream stream = new FileStream(
              ImageFile, FileMode.Open, FileAccess.Read);
        BinaryReader reader = new BinaryReader(stream);

        // Convert image to byte array.
        byte[] photo = reader.ReadBytes((int)stream.Length);

        return photo;
    }

您正在使用Windows窗体吗?您必须将字节数组转换为图像,以便在图片框中显示它

public Image byteArrayToImage(byte[] byteArrayIn)
{
    MemoryStream ms = new MemoryStream(byteArrayIn);
    Image returnImage = Image.FromStream(ms);
    return returnImage;
}
你们是如何把图像转换成字节数组的。我希望这个问题不存在。您可以使用:

  private byte[] ImageToByteArray(string ImageFile)
    {
        FileStream stream = new FileStream(
              ImageFile, FileMode.Open, FileAccess.Read);
        BinaryReader reader = new BinaryReader(stream);

        // Convert image to byte array.
        byte[] photo = reader.ReadBytes((int)stream.Length);

        return photo;
    }

您好,感谢您的回复,但我有一些疑问,我正在以BLOB格式在db中存储pic,我如何将该值带到我的表单中,以及当我单击一个按钮时如何调用该函数?首先,您必须将BLOB数据转换为字节数组。然后调用方法byteArrayToImage。类似这样的内容:picbox.Image=byteArrayToImage(blobData.ToByteArray)。如果它有助于+1我的答案。谢谢。我正在像这样检索blob数据….pic=dr[“pic”].ToString();调用byte[]array=newbyte[150]等方法;数组=ImageToByteArray(pic);picturebox.Image=byteArrayToImage(数组)。。。它不起作用…你能帮我吗…谢谢@Farhad Jabiyev。。。它起作用了+10作为您的答案..为了将blob数据转换为字节数组,我使用了以下代码byte[]byteBLOBData=(byte[])(dr[“pic”]);。。。。。我很高兴@SeD。但如果你能+1我的答案,我会更高兴您好,感谢您的回复,但我有一些疑问,我正在以BLOB格式在db中存储pic,我如何将该值带到我的表单中,以及当我单击一个按钮时如何调用该函数?首先,您必须将BLOB数据转换为字节数组。然后调用方法byteArrayToImage。类似这样的内容:picbox.Image=byteArrayToImage(blobData.ToByteArray)。如果它有助于+1我的答案。谢谢。我正在像这样检索blob数据….pic=dr[“pic”].ToString();调用byte[]array=newbyte[150]等方法;数组=ImageToByteArray(pic);picturebox.Image=byteArrayToImage(数组)。。。它不起作用…你能帮我吗…谢谢@Farhad Jabiyev。。。它起作用了+10作为您的答案..为了将blob数据转换为字节数组,我使用了以下代码byte[]byteBLOBData=(byte[])(dr[“pic”]);。。。。。我很高兴@SeD。但如果你能+1我的答案,我会更高兴