读书人

关于richtextbox怎么循环读出数据库中

发布时间: 2012-10-13 11:38:17 作者: rapoo

关于richtextbox如何循环读出数据库中的图片
不知道刚才那位大哥还在不在,代码如下,我该如何去改?

C# code
        //发送表情        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();}顺便能帮我把每句代码写下注释,明天起来立马结贴


[解决办法]
那么,这样好了:
C# code
       //接受数据库的信息        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();
}

读书人网 >C#

热点推荐