好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

C#读写图片文件到Access数据库中

Access数据库连接字符串 const string conStr = @" Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\MyAccessFile\MyPicte.accdb;Persist Security Info=False " ; string pic = string .Empty; // 保存图片转化字符串 // 选择图片并写入数据库中 private void button1_Click( object sender, EventArgs e) { // 打开文件对话框选择图片文件 OpenFileDialog openfile = new OpenFileDialog(); openfile.Title = " 请选择图片 " ; openfile.Filter = " 图片(*.jpg;*.bmp;*.png)|*.jpeg;*.jpg;*.bmp;*.png|AllFiles(*.*)|*.* " ; if (DialogResult.OK != openfile.ShowDialog()) return ; try { // 显示图片到PictureBox控件中 Bitmap bmp = new Bitmap(openfile.FileName); pictureBox1.Image = bmp; pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; // 把图片转化成二进制,最后转成字符串 MemoryStream ms = new MemoryStream(); bmp.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); byte [] arr = new byte [ms.Length]; ms.Position = 0 ; ms.Read(arr, 0 , ( int )ms.Length); ms.Close(); pic = Convert.ToBase64String(arr); // 把Byte字节数组转成字符串 // pic = ImageToString(openfile.FileName); // 自己写的图片转字符串的函数封装 // 写入数据库中 OleDbConnection conn = new OleDbConnection(conStr); string sql = $ " insert into mTable (pictName,pictText) values (‘{openfile.FileName}‘,‘{pic}‘) " ; OleDbCommand cmd = new OleDbCommand(sql, conn); conn.Open(); int res = cmd.ExecuteNonQuery(); if (res > 0 ) { MessageBox.Show( " 图片保存成功! " ); } conn.Close(); conn.Dispose(); } catch (Exception) { throw ; } }

2。从数据库中读取图片文件

 //  从数据库中读取图片,并显示在PictureBoc控件中 
         private   void  button2_Click( object   sender, EventArgs e)
        {
              int  id =  6 ; //  要读取的图片在数据库中的编号,因为是测试就手动修改要读取的编号 
             try  
            {
                OleDbConnection conn  =  new   OleDbConnection(conStr);
                  string  sql = $ "  select pictText from mTable where ID={id}  "  ;
                OleDbCommand cmd  =  new   OleDbCommand(sql, conn);
                conn.Open();
                OleDbDataAdapter oda  =  new   OleDbDataAdapter(cmd);
                DataTable dt  =  new   DataTable();
                oda.Fill(dt);
                conn.Close();
                conn.Dispose();

                  if (dt.Rows.Count> 0  )
                {
                    pic  = dt.Rows[ 0 ][ 0  ].ToString();
                      if  (! string  .IsNullOrEmpty(pic))
                    {
                          //  把string转成字节数组 
                         byte [] imageBytes =  Convert.FromBase64String(pic);
                          //  把字节读取到内存 
                        MemoryStream memoryStream =  new  MemoryStream(imageBytes,  0  , imageBytes.Length);
                        memoryStream.Write(imageBytes,   0  , imageBytes.Length);

                          //  字节数组转成Image对象 
                        Image image =  Image.FromStream(memoryStream);

                          //  Image image = StringToImage(pic);

                          //  显示图片到控件中 
                         this .pictureBox2.SizeMode =  PictureBoxSizeMode.Zoom;
                          this .pictureBox2.Image =  image;
                    }
                }
            }
              catch   (Exception)
            {

                  throw  ;
            }
        } 

学习成果展示:

 

 

好了今天就学到这了。

 

C#读写图片文件到Access数据库中

标签:orm   ros   insert   gre   rom   byte   isp   sage   span   

查看更多关于C#读写图片文件到Access数据库中的详细内容...

  阅读:21次