51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> mysql >> 文章正文

如何把图片存储到mysql数据库中

更新时间:2012-1-3:  来源:51代码网

因为项目需求,必须要把图片存储到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)

[1] [2] 下一页

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |