A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© No_why 中级黑马   /  2013-12-26 12:48  /  1365 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

因为图片在数据库中是字节,取出来后怎么把它变成image呢?winform中

3 个回复

倒序浏览
  1. HttpPostedFile upFile = up_file.PostedFile;//HttpPostedFile对象,用来读取上传图片的属性
  2.             fileLength = upFile.ContentLength;//记录文件的长度
  3.    try
  4.    {
  5.     if(fileLength==0)//当文件长度为0的时候
  6.     {
  7.      txtMessage.Text = "请选择要上传的文件!";
  8.     }
  9.     else
  10.     {
  11.      byte[] fileByte = new byte[fileLength];//用图片的长度来初始化一个字节数组存储临时的图片文件
  12.      Stream fileStream = upFile.InputStream;//建立文件流对象
  13.      fileStream.Read(fileByte,0,fileLength);//读取图片数据到临时存储体fileByte,0为数据指针位置,fileLength为数据长度
  14.      string connString = "Data Source=192.168.1.250;database=image;uid=pwqzc;pwd=cn0088";
  15.      SqlConnection conn = new SqlConnection(connString);//初始化数据库连接
  16.      string insertStr = "insert into image (image_data,image_content_type,image_description,image_size) values (@image_data,@image_content_type,@image_description,@image_size)";
  17.      //插入数据库语句
  18.      SqlCommand comm = new SqlCommand(insertStr,conn);
  19.      comm.Parameters.Add(new SqlParameter("@image_data",SqlDbType.Image));//添加参数
  20.      comm.Parameters["@image_data"].Value = fileByte;//给参数赋值
  21.      comm.Parameters.Add(new SqlParameter("@image_content_type",SqlDbType.VarChar,50));
  22.      comm.Parameters["@image_content_type"].Value = upFile.ContentType;//记录图片类型
  23.      comm.Parameters.Add(new SqlParameter("@image_description",SqlDbType.VarChar,50));
  24.      comm.Parameters["@image_description"].Value = txtDescription.Text;//把其他的表单数据上传
  25.      comm.Parameters.Add(new SqlParameter("@image_size",SqlDbType.Int,4));
  26.      comm.Parameters["@image_size"].Value = upFile.ContentLength;//记录图片长度,读取数据的时候使用
  27.      conn.Open();//打开数据库连接
  28.      comm.ExecuteNonQuery();//添加数据
  29.      conn.Close();//关闭数据库
  30.      txtMessage.Text = "你已经成功的上传了图片";
  31.     }
  32.    }
  33.    catch(Exception ex)
  34.    {
  35.        txtMessage.Text = ex.Message.ToString();
  36.    }
  37.   }
  38. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
查询数据库中的图片信息流,存储到字节数组中
byte[] b= (byte[])cmd.ExecuteScalar();
     if (b.Length 〉 0)
     {
     MemoryStream stream = new MemoryStream(b, true);
     stream.Write(b, 0, b.Length);
     Bitmap  bitmap = new Bitmap(stream);//重新绘制流程图片流
     stream.Close();
     }

评分

参与人数 1技术分 +1 收起 理由
V_John + 1

查看全部评分

回复 使用道具 举报
数据库中的是byte流,你把读出来,然后通过流写成图片文件就好了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马