日期:2014-05-17 浏览次数:20739 次
//发送表情 private void btnOK_Click(object sender, EventArgs e) { //建立内存流 MemoryStream ms = new MemoryStream(); ms.Position = 0; //把当前的richtextbox内容包括图片和文本保存到流中 rtbOut.SaveFile(ms, RichTextBoxStreamType.RichText); string sql = "insert rrr(Chat) values (@biStr)"; SqlCommand comm = new SqlCommand(sql, DBHelper.conn); comm.Parameters.AddWithValue("@biStr", ms.GetBuffer()); DBHelper.conn.Open(); int num = comm.ExecuteNonQuery(); DBHelper.conn.Close(); if (num == 1) { trmIn.Start(); } } //接受数据库的信息 private void trmIn_Tick(object sender, EventArgs e) { rtbOut.Clear(); string sql = "select Chat from rrr where Id <> 0"; SqlCommand comm = new SqlCommand(sql, DBHelper.conn); DBHelper.conn.Open(); //下面是读取 byte[] b = new byte[] { }; b = (byte[])(comm.ExecuteScalar()); MemoryStream ms = new MemoryStream(); ms.Position = 0; ms.Write(b, 0, b.Length); ms.Position = 0; rtbIn.LoadFile(ms, RichTextBoxStreamType.RichText); ms.Close(); DBHelper.conn.Close(); trmIn.Stop(); } 顺便能帮我把每句代码写下注释,明天起来立马结贴
//接受数据库的信息 private void trmIn_Tick(object sender, EventArgs e) { rtbOut.Clear(); string sql = "select Chat from rrr where Id <> 0"; SqlCommand comm = new SqlCommand(sql, DBHelper.conn); DBHelper.conn.Open(); //下面是读取 byte[] b = null; SqlDataReader reader=comm.ExecuteReader(); MemoryStream ms = new MemoryStream(); ms.Position = 0;//这一句实在是多余的,流的起始位置本来就在0。 while(reader.Read()) { b = (byte[])(reader[0]); ms.Write(b, ms.Position, b.Length); ms.Seek(Position,b.Length);//加这一句看看 ms.Position += b.Length; } ms.Position=0;//这一句也不知道要不要,可以试试去掉看看 rtbIn.LoadFile(ms, RichTextBoxStreamType.RichText); ms.Close(); DBHelper.conn.Close(); trmIn.Stop(); }
------解决方案--------------------
//接受数据库的信息
private void trmIn_Tick(object sender, EventArgs e)
{
rtbOut.Clear();
string sql = "select Chat from rrr where Id <> 0";
SqlCommand comm = new SqlCommand(sql, DBHelper.conn);
DBHelper.conn.Open();
//下面是读取
byte[] b = null;
SqlDataReader reader=comm.ExecuteReader();
MemoryStream ms = new MemoryStream();
ms.Position = 0;//这一句实在是多余的,流的起始位置本来就在0。
while(reader.Read())
{
b = (byte[])(reader[0]);
ms.Write(b, 0, b.Length);
ms.Flush()
}
rtbIn.LoadFile(ms, RichTextBoxStreamType.RichText);
ms.Close();
DBHelper.conn.Close();
trmIn.Stop();
}