c# 中怎么把richtextbox中有图片和文字的一起保存进数据库?

qq2471571397 2012-05-11 11:23:32
c# 中怎么把richtextbox中有图片和文字的一起保存进数据库?又怎么从数据库sqlserver中读出来,读出来显示的内容排列要和保存时一样。比如:内容+图片+内容.
急用!!!!
要具体详细代码.......................
...全文
935 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
草根豆 2013-03-21
  • 打赏
  • 举报
回复
求代码共享啊.
qq2471571397 2012-05-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
那到時數據庫不是超大?
[/Quote]
嗯,今天数据库崩了一次,辛亏我备份了,嗨嗨嗨
qq2471571397 2012-05-13
  • 打赏
  • 举报
回复
嗨嗨,我解决了,也谢谢大家了。我又用一个隐藏的richtextbox3。loadfile先接收,再转到richtextbox3里面都好了。
wepwep 2012-05-13
  • 打赏
  • 举报
回复
理论上应该用Stream合并,但是一来我不会,二来万一rtb的数据万一有个终止标记就麻烦了,所以要我做就用系统的复制粘贴功能了,先把当前的剪贴板内容临时保存,然后把新数据放到剪贴板,将光标移到rtb最下面,然后粘贴,然后再还原剪贴板内容。
nikolaichow 2012-05-12
  • 打赏
  • 举报
回复
使用数据流保存
sunylf 2012-05-12
  • 打赏
  • 举报
回复
那到時數據庫不是超大?
qq2471571397 2012-05-12
  • 打赏
  • 举报
回复
大神们,帮帮忙吧,谢谢了帮我分析分析
qq2471571397 2012-05-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
RichTextBox.LoadFile 方法 (Stream, RichTextBoxStreamType)
RichTextBox.SaveFile 方法 (Stream, RichTextBoxStreamType)

看这2个方法的帮助吧,里面有示例代码,我实在懒得写了。

读取或者写入Stream后把Stream赋值到数据库字段中,字段类型一般都是Image(SQLSERVER……
[/Quote]
嗯,好了,我用的是MemoryStream数据流,即用loadfile方法来显示在RichTextBox中,但他把上面写的其他内容覆盖了,这怎摸办???
还有我做的是一个聊天对话窗体,无法让发过来的信息追加到其后面
//发送信息
private void btnsend_Click(object sender, EventArgs e)
{
if (rtbSendInfo.Text == "")
{
return;
}
//建立内存流
MemoryStream ms = new MemoryStream();
ms.Position = 0;
//把当前的richtextbox内容包括图片和文本保存到流中
rtbSendInfo.SaveFile(ms, RichTextBoxStreamType.RichText);
//保存二进制流都是使用的参数,没有谁在代码中直接给出的。
string ttime = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToLongTimeString();
string sql = "insert into messages (senderid,receiveid,messages,state,type,messagetime) values ('" + sendcid + "','" + rcid + "',@messages,'" + 1 + "','" + 0 + "','" + ttime + "')";
SqlCommand comm = new SqlCommand(sql, conn);
comm.Parameters.AddWithValue("@messages", ms.GetBuffer());
conn.Open();
int i = comm.ExecuteNonQuery();
conn.Close();
if (i == 1)
{
timer1.Start();
rtbShow.SelectAll();
rtbShow.Text += sendname + "\t" + ttime + "\n";
rtbShow.SelectionStart = rtbShow.TextLength;
rtbShow.SelectedRtf = rtbSendInfo.Rtf;
rtbShow.SelectionStart = rtbShow.TextLength;
rtbShow.ScrollToCaret();
rtbSendInfo.Text = "";
}
}//接收信息
private void timer1_Tick(object sender, EventArgs e)
{
//查询未读信息
string sql = "select * from messages where receiveid=@0 and type=@1";
DataTable dt = DataBaseHelper.ExecDataTable(sql, sendcid, 0);
//下面是读取
if(dt.Rows.Count>0)
{
foreach(DataRow row in dt.Rows)
{
string ttime = row["messagetime"].ToString();
if (row["senderid"].ToString() == rcid)
{
string sqll = "update messages set type=@0 where messagetime=@1";
int i = DataBaseHelper.ExecNoneQuery(sqll, "1", ttime);
if(i>0)
{
byte[] b = (byte[])(row["messages"]);
MemoryStream ms = new MemoryStream();
ms.Position = 0;
ms.Write(b, 0, b.Length);
ms.Position = 0;
timer1.Stop();
rtbShow.SelectionStart = rtbShow.TextLength;
rtbShow.ScrollToCaret();
rtbShow.SelectedText += "\n"+receivename + "\t" + ttime + "\n";
rtbShow.SelectionStart += rtbShow.TextLength;
rtbShow.ScrollToCaret();
rtbShow.LoadFile(ms, RichTextBoxStreamType.RichText);
rtbShow.SelectionStart = rtbShow.TextLength;
rtbShow.ScrollToCaret();
ms.Close();
}
}
}
}
}
bdmh 2012-05-12
  • 打赏
  • 举报
回复
存储成文件,然后将文件存到数据库
熙风 2012-05-12
  • 打赏
  • 举报
回复
用二进制保存和读取就可以了
grzx2210 2012-05-11
  • 打赏
  • 举报
回复
保存成为rtf格式,rtf是富文本格式,简化的word。支持图片编码
wepwep 2012-05-11
  • 打赏
  • 举报
回复
RichTextBox.LoadFile 方法 (Stream, RichTextBoxStreamType)
RichTextBox.SaveFile 方法 (Stream, RichTextBoxStreamType)

看这2个方法的帮助吧,里面有示例代码,我实在懒得写了。

读取或者写入Stream后把Stream赋值到数据库字段中,字段类型一般都是Image(SQLSERVER).

111,126

社区成员

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

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

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