点击这里给我发消息 点击这里给我发消息

用C#编程实现读写Binary

添加时间:2014-7-23
    相关阅读: SQL C#

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

  }

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册