将图像插入mysql数据库时出现问题

本文关键字:问题 数据库 图像 插入 mysql | 更新日期: 2023-09-27 18:00:19

我正在尝试从windows应用程序向mysql数据库插入一个映像,它已经成功执行,但我的表中没有数据。

在这里我使用了以下代码。执行成功,根据我的表,电子邮件id和图像必须存储在表中,但这两个字段都保存为空。

 public void LoadImages()
        {
            MySqlConnection cn = new MySqlConnection(connstring);
            cn.Open();
            string image = txtLogo.Text;
            byte[] ImageData;
            FileStream fs = new FileStream(image, FileMode.Open, FileAccess.Read);
            BinaryReader br = new BinaryReader(fs);
            ImageData = BitConverter.GetBytes(fs.Length); 
            br.Close();
            fs.Close();
            MySqlParameter parImage = new MySqlParameter();
            parImage.ParameterName = "?Images";
            MySqlCommand cmd = new MySqlCommand("insert into Fn_Pictures(Images,Email)values(?Images,'" + txtEmailIdText + "')", cn);
            parImage.MySqlDbType = MySqlDbType.MediumBlob;
            parImage.Size = 3000000;
            parImage.Value = ImageData;//here you should put your byte []
            cmd.Parameters.Add(parImage);
            cmd.ExecuteNonQuery();
            cn.Close();
        }

将图像插入mysql数据库时出现问题

BitConverter.GetBytes(fs.Length); 

这将以字节[4]的形式返回长度,而不是读取图像数据。请查看此处以阅读文件:http://msdn.microsoft.com/en-us/library/system.io.file.readallbytes(v=vs.110).aspx

您可能还想将parImage.Size设置为ImageData.length,而不是3000000。