WINFORM-Richtextbox和Picturebox与数据库的交互

Richtextbox

存:    
 //传入Richtextbox 对象 返回二进制数据
     private byte[] getStream(RichTextBox rtb)
        {
   //定义内存流
            using (MemoryStream stream = new MemoryStream())
            {
                //将Richtextbox内容写入内存流
                rtb.SaveFile(stream, RichTextBoxStreamType.RichText);
       //流数据转二进制数据
                byte[] SendData = stream.ToArray();
 
                return SendData;
            }
        }

取:      

 if (dt.Rows[0]["education"].ToString() != "")
            {
               //定义内存流和二进制数据
                MemoryStream stream = null;
                byte[] selectData = null;
               
               //从数据库取出二进制数据
                selectData = (byte[])dt.Rows[0]["education"];
               //二进制数据写入流数据
                stream = new MemoryStream(selectData, false);
               //Richtextbox获取流数据内容
                richboxEducation.LoadFile(stream, RichTextBoxStreamType.RichText);
            }

Picturebox

上传:
 private void picPhoto_MouseDoubleClick(object sender, MouseEventArgs e)
        {
            //实例化一个打开文件对话框 
            OpenFileDialog op = new OpenFileDialog();
            //设置文件的类型 
            op.Filter = "(*.jpg,gif,bmp,png)|*.jpg;*.gif;*.bmp;*.png";
            //如果用户点击了打开按钮、选择了正确的图片路径则进行如下操作: 
            byte[] data = null;
            if (op.ShowDialog() == DialogResult.OK)
            {
                //实例化一个文件流 
                FileStream fs = new FileStream(op.FileName, FileMode.Open);
                //把文件读取到字节数组 
                data = new byte[fs.Length];
                fs.Read(data, 0, data.Length);
                fs.Close();
                //实例化一个内存流--->把从文件流中读取的内容[字节数组]放到内存流中去 
                MemoryStream ms = new MemoryStream(data);
                //图片压缩并显示到Picturebox
                System.Drawing.Size s=new System.Drawing.Size();
                s.Height=100;
                s.Width=80;
                picPhoto.Image = DBUtility.ImageClass.GetOutputSizeImage(Image.FromStream(ms), s);
                
            }
        }

存:     

 private byte[] savePic(PictureBox ptb)
        {
           //定义内存流
            MemoryStream stream = new MemoryStream();
           //将Picturebox的图片内容写入流
            ptb.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
           //流数据转二进制数据
            byte[] bt = stream.GetBuffer();
           //返回二进制数据
            return bt; 
        }  

取:       

 if (dt.Rows[0]["photo"].ToString() != "")
            {
       //将数据库取出的图片二进制数据写入流
                MemoryStream ms = new MemoryStream((byte[])dt.Rows[0]["photo"]);
              //Picturebox读取流数据图片内容
                picPhoto.Image = Image.FromStream(ms);
            }          

 

posted @ 2014-04-28 22:07  oliverary  阅读(298)  评论(0)    收藏  举报