当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 用 C# 编程实现读写Binary

ASP.NET
asp.net(c#)网页跳转七种方法小结
完美解决在ModalPopupExtender中使用CalendarExtender时被层遮挡的问题
ASP.NET、SharePoint中另存文件的长文件名被截断的原因及解决办法
查看Json输出的*最方便*的方法 (转)
asp.net 代码隐藏的编码模型
ajaxpro.dll 控件实现异步刷新页面
asp.net DbProviderFactory的使用-示例
一个简单的asp.net 单点登录实现
jQuery+Ajax用户登录功能的实现
asp.net 弹出对话框返回多个值
.NET 中英文混合验证码实现代码
一个完整的ASP.NET 2.0 URL重写方案[翻译]
asp.net关于onpropertychange和oninput事件实现代码
asp.net gridview指定某一列滚动
Equals和==的区别 公共变量和属性的区别小结
asp.net 合并GridView中某列相同信息的行(单元格)
ASP.NET(C#) 定时执行一段代码
asp.net 预防SQL注入攻击之我见
asp.net下将Excel转成XML档的实现代码
asp.net url分页类代码

ASP.NET 中的 用 C# 编程实现读写Binary


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 45 ::
收藏到网摘: n/a

  本文给出一个用 C# 编程实现读写 Binary 的实例代码,对于初学者来说是个不可多得的参考性文章……

  //返回blob数据
  public MemoryStream getBlob(string SQL)
  ...{
  try
  ...{
  Db_Conn();
  cmd = new OleDbCommand(SQL, Conn);
  cmd.CommandType = CommandType.Text;//是sql
  OleDbDataReader Rs = cmd.ExecuteReader();
  if (Rs.Read()) //循环到下一条记录
  ...{
  if (!(Rs.GetValue(0) is System.DBNull))
  ...{
  byte[] image_bytes = (byte[])Rs.GetValue(0);
  MemoryStream ms = new MemoryStream(image_bytes);
  return ms;
  }
  else
  return null;
  }
  else
  return null;
  }
  finally
  ...{
  this.close();
  }
  }
  //设置blob
  public bool SetBlob(string SQL, MemoryStream Ms)
  ...{
  try
  ...{
  Db_Conn();
  cmd = new OleDbCommand(SQL, Conn);
  cmd.CommandType = CommandType.Text;//是sql
  int n=Convert.ToInt32(Ms.Length.ToString());
  Ms.Position = 0;
  byte[] pReadByte = new Byte[n];
  Ms.Read(pReadByte, 0, n);
  cmd.Parameters.Add("BLOB", OleDbType.Binary).Value = pReadByte;
  cmd.ExecuteNonQuery();
  return true;
  }
  catch (Exception ex)
  ...{
  MessageBox.Show("错误:因" + ex.Message + ",无法执行:" + SQL);
  return false;
  }
  finally
  ...{
  this.close();
  }
  }

  调用 getBlob

  String sqlStr = "select content from dp where id=" + ID;//content为dp中的BLOB字段,ID为主键
  MemoryStream ms = DBClass.getBlob(sqlStr);
  if (ms == null)
  richTextBox.Clear();
  else
  ...{
  if (ms.Length > 0)
  ...{
  ms.Position = 0;
  try
  ...{
  richTextBox.LoadFile(ms, RichTextBoxStreamType.RichText);
  }catch...{
  richTextBox.LoadFile(ms, RichTextBoxStreamType.PlainText);
  }
  }else
  richTextBox.Clear();
  }

  调用setBlob

  String sqlStr = "update dp set content=:BLOB where id=" + ID;
  MemoryStream ms = new MemoryStream();
  richTextBox.SaveFile(ms, RichTextBoxStreamType.RichText);
  if (!DBClass.SetBlob(sqlStr, ms))
  ...{
  MessageBox.Show("保存失败");
  }