怎么把图片存入mysql_如何把图片存储到mysql数据库中

因为项目需求,必须要把图片存储到mysql数据库中.

首先 mysql数据库中的表 test 字段 photo 字段的类型是 mediumblob

执行插入数据的时候报: MySql.Data.MySqlClient.MySqlException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near

意思是sql语句不对!语法错误!

麻烦各位大侠帮帮忙,真的很急.谢谢了.困扰 很久了.一直找不到出点,所以才来找大家的!!!

---------------------------操作数据库的方法开始---------------------------

public static void AddPhoto(byte[] image)

{

//建立数据库连接

MySqlConnection conn = new MySqlConnection("server=127.0.0.1;user id=root;password=FLUser;database=banklgs");

conn.Open();

//设置命令参数

string insertStr = "insert into test(photo) values(?photo)";

MySqlCommand comm = new MySqlCommand();

comm.Connection = conn;

comm.CommandText = insertStr;

comm.CommandType = CommandType.Text;

//设置数据库字段类型MediumBlob的值为图片字节数组imageByte

MySqlParameter paraPhoto = new MySqlParameter("?photo", MySqlDbType.MediumBlob);

paraPhoto.Value = image;

comm.Parameters.Add(paraPhoto);

//执行命令

try

{

comm.ExecuteNonQuery();

}

catch (Exception ex)

{

ex.ToString();

}

}

---------------------------操作数据库的方法结束---------------------------

用的是 PictureBox 控件!

---------------------------将图片转换为byte的地方开始---------------------------

private void photoPictureBox_DoubleClick(object sender, EventArgs e)

{

Stream photoStream = null;

if (openFileDialog1.ShowDialog() == DialogResult.OK)

{

try

{

string pathName = openFileDialog1.FileName;

if ((photoStream = openFileDialog1.OpenFile()) != null)

{

using (photoStream)

{

if (photoStream.Length > 50 * 1024)//文件不应大于50K

{

this.infoPanel1.ShowInfo(InfoPanel.TipType.ERROR, "文件大小不超过50K");

return;

}

//将图像读入到字节数组

byte[] buffByte = new byte[photoStream.Length];

int ret = photoStream.Read(buffByte, 0, (int)photoStream.Length);

this.photo = buffByte;

Image image = Image.FromStream(photoStream, true);

Image imgPhoto = image;

if (buffByte.Length > 15000)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值