用 C# 編程實現讀寫Binary

 本文給出一個用 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[] p_w_picpath_bytes = (byte[])Rs.GetValue(0);
  MemoryStream ms = new MemoryStream(p_w_picpath_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("保存失敗");
  }
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章