C#将图像保存为Mybql数据库为blob
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C#将图像保存为Mybql数据库为blob,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1947字,纯文字阅读大概需要3分钟。
内容图文
![C#将图像保存为Mybql数据库为blob](/upload/InfoBanner/zyjiaocheng/890/5e2c556a697347769fe28d5b57e5b0ab.jpg)
出于某种原因,当我尝试为用户更新图像时,我的代码失败了.图像未正确保存.例如,38 kib的图像在数据库中保存为13个字节.
这是我的代码:
public void UploadImage(Image img)
{
OpenConnection();
MySqlCommand command = new MySqlCommand("", conn);
command.CommandText = "UPDATE User SET UserImage = '@UserImage' WHERE UserID = '" + UserID.globalUserID + "';";
byte[] data = imageToByte(img);
MySqlParameter blob = new MySqlParameter("@UserImage", MySqlDbType.Blob, data.Length);
blob.Value = data;
command.Parameters.Add(blob);
command.ExecuteNonQuery();
CloseConnection();
}
public byte[] imageToByte(Image img)
{
using (var ms = new MemoryStream())
{
img.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
return ms.ToArray();
}
}
OpenConnection和closeconnection只是conn.Open()和conn.Close().
然而,转换不会失败:
但是在数据库中我看到了:
有谁知道这里发生了什么?
解决方法:
替换此代码:
OpenConnection();
MySqlCommand command = new MySqlCommand("", conn);
command.CommandText = "UPDATE User SET UserImage = '@UserImage' WHERE UserID = '" + UserID.globalUserID + "';";
byte[] data = imageToByte(img);
MySqlParameter blob = new MySqlParameter("@UserImage", MySqlDbType.Blob, data.Length);
blob.Value = data;
command.Parameters.Add(blob);
command.ExecuteNonQuery();
CloseConnection();
同
var userImage = imageToByte(img);
OpenConnection();
var command = new MySqlCommand("", conn);
command.CommandText = "UPDATE User SET UserImage = @userImage WHERE UserID = @userId;";
var paramUserImage = new MySqlParameter("@userImage", MySqlDbType.Blob, userImage.Length);
var paramUserId = new MySqlParameter("@userId", MySqlDbType.VarChar, 256);
paramUserImage.Value = userImage;
paramUserId.Value = UserID.globalUserID;
command.Parameters.Add(paramUserImage);
command.Parameters.Add(paramUserId);
command.ExecuteNonQuery();
CloseConnection();
您发送了一个10字节长的字符串’@ UserImage’,删除了引号,它应该可以工作.
上面的代码也使用了两个变量which you should always do的参数.
无论哪种方式希望这对你有帮助.
内容总结
以上是互联网集市为您收集整理的C#将图像保存为Mybql数据库为blob全部内容,希望文章能够帮你解决C#将图像保存为Mybql数据库为blob所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。