哈尔滨海月数据恢复,技术亚洲领先 设为首页加入收藏RSS订阅
中国区:哈尔滨(总部)郑州福建深圳沈阳合肥大连包头淄博上海广州
    南京杭州嘉兴武汉济南青岛新疆太原
亚太区:印度韩国泰国新加坡马来西亚澳大利亚
Windows
数据库中图片的二进制存储和显示

  与图片的二进制数据库存储和显示

  1.将图片以二进制存入数据库

  2.读取二进制图片在页面显示

  3.设置Image控件显示从数据库中读出的二进制图片

  4.GridView中ImageField以URL方式显示图片

  5.GridView显示读出的二进制图片

  ====================

  1.将图片以二进制存入数据库

  //保存图片到数据库

  protected void Button1_Click(object sender, EventArgs e)

  {

  //图片路径

  string strPath = "~/photo/03.JPG";

  string strPhotoPath = Server.MapPath(strPath);

  //读取图片

  FileStream fs = new System.IO.FileStream(strPhotoPath, FileMode.Open, FileAccess.Read);

  BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath, FileMode.OpenOrCreate));

  bw.Write(photo);

  bw.Close();

  //显示图片

  tmp_Image.ImageUrl = strPath;

  }

  }

  BinaryReader br = new BinaryReader(fs);

  byte[] photo = br.ReadBytes((int)fs.Length);

  br.Close();

  fs.Close();

  //存入

  SqlConnection myConn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa");

  string strComm = " INSERT INTO personPhoto(personName, personPhotoPath, personPhoto) ";

  strComm += " VALUES('wangwu', '" + strPath + "', @photoBinary )";

  SqlCommand myComm = new SqlCommand(strComm, myConn);

  myComm.Parameters.Add("@photoBinary", SqlDbType.Binary,photo.Length);

  myComm.Parameters["@photoBinary"].Value = photo;

  myConn.Open();

  myComm.ExecuteNonQuery();

  myConn.Close();

  }

  2.读取二进制图片在页面显示

  //读取图片

  SqlConnection myConn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa");

  string strComm = " SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ";

  SqlCommand myComm = new SqlCommand(strComm, myConn);

  myConn.Open();

  SqlDataReader dr = myComm.ExecuteReader();

  while (dr.Read())

  {

  byte[] photo = (byte[])dr["personPhoto"];

  this.Response.BinaryWrite(photo);

  }

  dr.Close();

  myConn.Close();

  或

  SqlConnection myConn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=TestDB;User ID=sa;Password=sa");

  SqlDataAdapter myda = new SqlDataAdapter(" SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ", myConn);

  DataSet myds = new DataSet();

  myConn.Open();

  myda.Fill(myds);

  myConn.Close();

  byte[] photo = (byte[])myds.Tables[0].Rows[0]["personPhoto"];

  this.Response.BinaryWrite(photo);

  3.设置Image控件显示从数据库中读出的二进制图片

  ---------------------------------------------

  SqlConnection myConn = new SqlConnection("Data Source=192.168.0.36;Initial Catalog=TestDB;User ID=sa;Password=sa");

  SqlDataAdapter myda = new SqlDataAdapter(" SELECT personPhoto FROM personPhoto WHERE personName='wangwu' ", myConn);

  DataSet myds = new DataSet();

  myConn.Open();

  myda.Fill(myds);

  myConn.Close();

  byte[] photo = (byte[])myds.Tables[0].Rows[0]["personPhoto"];

  //图片路径

  string strPath = "~/photo/wangwu.JPG";

  string strPhotoPath = Server.MapPath(strPath);

  //保存图片文件

  BinaryWriter bw = new BinaryWriter(File.Open(strPhotoPath,FileMode.OpenOrCreate));

  bw.Write(photo);

  bw.Close();

  显示图片

  this.Image1.ImageUrl = strPath;

  //4.GridView中ImageField以URL方式显示图片

  ----------------------------

  

  

  

  

  HeaderText="图片">

  

  

  

  后台直接绑定即可

  5.GridView显示读出的二进制图片

  //样板列

  

  

  

  

  HeaderText="图片">

  

  

  

  

  

  

  

  

  protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

  {

  if (e.Row.RowIndex < 0)

  return;

  // System.ComponentModel.Container

  string strPersonName = (string)DataBinder.Eval(e.Row.DataItem, "personName");

  Image tmp_Image = (Image)e.Row.Cells[2].FindControl("Image1");

  if (!System.Convert.IsDBNull(DataBinder.Eval(e.Row.DataItem, "personPhoto")))

  {

  //

  byte[] photo = (byte[])DataBinder.Eval(e.Row.DataItem, "personPhoto");

  //图片路径

  string strPath = "~/photo/" + strPersonName.Trim() + ".JPG";

  string strPhotoPath = Server.MapPath(strPath);

  //保存图片文件

 

 
客户服务 +more
上门服务
服务承诺
异地恢复
收费标准
付款方式
疑难解答
服务特色 +more
·免费检测
·免费提供3天备份
·专业工程师提供服务
·免费清洁送修的介质
·数据恢复前报价,客户确认后工程师开始数据恢复
·数据恢复不成功不收费
·与客户签订保密协议,对客户的数
 据严格保密,整个恢复过程不会对
 客户的原盘有任何的写操作,以确
 保原盘的数据完全

·免费参观恢复全过程

·工程师在线免费咨询

·专业工程师提供服务
服务器数据恢复 点击这里给我发消

息
数据库修复
点击这里给我发

消息
硬盘数据恢复
点击这里给我发消

息