如何将RichTextBox中的RTF格式的文档以二进制形式存入数据库中??

kingnew 2006-06-01 08:56:03
如何将RichTextBox中的RTF格式的文档以二进制形式存入数据库中,又如何读取呢??
...全文
450 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hxshanji 2007-04-26
  • 打赏
  • 举报
回复
mark
kingnew 2006-06-02
  • 打赏
  • 举报
回复
解决了,贴出来分享:
=======================================
将RichTextBox的内容直接写入数据库:
private void button1_Click(object sender, EventArgs e)
{
System.IO.MemoryStream mstream = new System.IO.MemoryStream();
this.richTextBox1.SaveFile(mstream, RichTextBoxStreamType.RichText);
//将流转换成数组
byte[] bWrite = mstream.ToArray();
//将数组写入数据库
System.Data.SqlClient.SqlParameter[] pram ={
sqlHelper.MakeInParam("@XX",System.Data.SqlDbType.Image)
};
pram[0].Value = bWrite;
sqlHelper.RunSql("insert into XXX (XX) values (@XX)", pram);
}

将数据库中的RTF读出并填充到RichTextBox
private void button2_Click(object sender, EventArgs e)
{
//从数据库中读出数据
DataTable dt=sqlHelper.GetDataTable("select XX from XXX where .....");
byte[] bWrite = (byte[])dt.Rows[0][0];
//将数组转换成stream
System.IO.MemoryStream mstream = new System.IO.MemoryStream(bWrite, false);
//将stream填充到RichTextBox
this.richTextBox1.LoadFile(mstream, RichTextBoxStreamType.RichText);
}
ggygd 2006-06-01
  • 打赏
  • 举报
回复
mark
constantine 2006-06-01
  • 打赏
  • 举报
回复
读取 Byte[] FileData,select出来,然后
FileData=(byte[])dt.Rows[i]["xxx"]
i 对应行,xxx对应字段

dt是查出来的表DataTable dt;
然后再写回去

新手,有说错的地方请高手指教,以后多混这里了
constantine 2006-06-01
  • 打赏
  • 举报
回复
把内容存到流,然后用
SqlParameter xxxParam = new SqlParameter("@" + "xxx", SqlDbType.Image);
用一个Byte[] FileData 从流读取数据
这样做参数,xxxParam.Value = FileData;
xxxParam.size=FileData.Length

FileData new的时候用流的大小

这样应该可以吧

Knight94 2006-06-01
  • 打赏
  • 举报
回复
至于如何在数据库存取二进制文件,可以如下:
http://blog.csdn.net/knight94/archive/2006/03/24/637800.aspx
Knight94 2006-06-01
  • 打赏
  • 举报
回复
参看
http://www.codeproject.com/cs/miscctrl/csexrichtextbox.asp

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧