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); }

浙公网安备 33010602011771号