软件开发的家园,编程爱好者的天地.

现在是:北京时间 2016/4/14 上午11:50:51 星期四

设为首页  |  加入收藏  |  网站地图

实现读写Binary
发布于:第八基地 来源:duote 作者:天堂路上 时间:2016-04-11 点击:282

  本文给出一个用 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("保存失败");

  }

上一篇:开源资源大汇总
下一篇:几种同步的方法
对我有帮助
(0)
0%
对我没帮助
(0)
0%
返回顶部
在线反馈
在线反馈