- ·上一篇内容:XML 树结构
- ·下一篇内容:在C#中启动另一个程序的实现方法
用 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[] 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("保存失败"); } |
本文源自:翔宇亭——IT乐园(http://www.biye5u.com),转载请保留此信息!
微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。
个人成长离不开各位的关注,你的关注就是我继续前行的动力。