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