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

时间:2014-04-26 04:33:50

标签: c# mysql

我正在尝试将图像从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();

        }

1 个答案:

答案 0 :(得分:0)

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。