当前位置: 代码迷 >> Sql Server >> 求教怎么将图片文件存入sql server 2005数据表中
  详细解决方案

求教怎么将图片文件存入sql server 2005数据表中

热度:39   发布时间:2016-04-27 14:59:51.0
求教如何将图片文件存入sql server 2005数据表中
我最终想解决的问题是:在VFP中,想把123.JPG文件进行BASE64编码存入SQL SERVER 2005,然后JAVA在将其取出来,反编回来

但是我发现对同一个 123.JPG文件,VFP和JAVA都各种进行base64编码,生成的字符串长度不同,也不能进行相互反编码(体现为文件不能打开),查过一些资料,有提到VFP在进行BASE64编码过程中,对某个字符进行了个性化处理。

请问情况是否如此?我该怎么办才能解决问题?多谢

------解决方案--------------------


如果能够顺利地写入数据库,并读取出来的话。编码相关的问题,LZ需要去相应的板块问问。
------解决方案--------------------
VFP和JAVA难道不能转换成2进制么??这样就一致了吧
------解决方案--------------------
SQL code
图片保存到数据库的方法http://topic.csdn.net/u/20081024/11/846e3e56-218b-4b07-b733-ee87dc2fe687.html?882064923图片保存到数据库的方法:  public void imgToDB(string sql)  { [email protected]  //调用方法如:imgToDB("update UserPhoto set [email protected] where UserNo='" + temp + "'");  FileStream fs = File.OpenRead(t_photo.Text);  byte[] imageb = new byte[fs.Length];  fs.Read(imageb, 0, imageb.Length);  fs.Close();  SqlCommand com3 = new SqlCommand (sql,con);  com3.Parameters.Add("@images", SqlDbType.Image).Value = imageb;  if (com3.Connection.State == ConnectionState.Closed)  com3.Connection.Open();  try  {  com3.ExecuteNonQuery();  }  catch  { }  finally  { com3.Connection.Close(); }  }  数据库中读出图片并显示在picturebox中:方法一:private void ShowImage(string sql)  {  //调用方法如:ShowImage("select Photo from UserPhoto where UserNo='" + userno +"'");  SqlCommand cmd = new SqlCommand(sql, conn);  conn.Open();  byte[] b= (byte[])cmd.ExecuteScalar();  if (b.Length 〉 0)  {  MemoryStream stream = new MemoryStream(b, true);  stream.Write(b, 0, b.Length);  pictureBox1.Image = new Bitmap(stream);  stream.Close();  }  conn.Close();  }方法二:当在dg中选中某行时:  private void dg_MouseUp(object sender, MouseEventArgs e)  {  //整行选择  if (e.Button == System.Windows.Forms.MouseButtons.Left)  {//用户编号,姓名,性别,身份证号,籍贯,学院,系所,校区,部门,电话,照片  //显示相片  object imgobj=dg[10, dg.CurrentRow.Index].Value;  if (imgobj != null && !Convert.IsDBNull(imgobj))  {  byte[] imgb = (byte[])imgobj;  MemoryStream memStream = new MemoryStream(imgb);  try  {  Bitmap myimge = new Bitmap(memStream);  this.pictureBox1.Image = myimge;  }  catch  {  DB.msgbox("从数据库读取相片失败!");  }  }  else  pictureBox1.Image = null;  }  }
  相关解决方案