方法一:
//将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);
}
方法二:
保存到数据库的内容:
byte[] b=System.Text.Encoding.Default.GetBytes(this.richTextBox1.Rtf);
读取:
SqlConnection con=new SqlConnection("...");
string str="select 内容 from 数据库 where ...";//确保只返回一行
SqlCommand comm=new SqlCommand(str,con);
if (con.State==ConnectionState.Closed)
con.Open();
byte[] b=(byte[])comm.ExecuteScalar();
MemoryStream stream=new MemoryStream(b,true);
stream.Write(b,0,b.Length);
this.richTextBox1.Clear();
string s=System.Text.Encoding.Default.GetString(b,0,b.Length);
this.richTextBox1.Rtf=@s;
stream.Close();