access数据库插入图片

这篇博客介绍了如何在Access数据库中插入和显示图片。通过使用OleDbConnection和OleDbCommand,博主展示了如何将图片保存到数据库的Binary字段,并通过MemoryStream从数据库中读取并显示到pictureBox控件上。此外,还提及了SQL Server数据库的操作方式作为对比。
部署运行你感兴趣的模型镜像

access数据库插入图片
我这个是ACCESS数据库你参考一下
//save picture


OleDbConnection mycnn=new OleDbConnection("provider=Microsoft.jet.oledb.4.0;data source=f://dazhu.mdb");
   mycnn.Open();
    
    OleDbCommand mycmd=new OleDbCommand("update info set picture=@a",mycnn );
     
   FileStream mystream=new FileStream("f://1.jpg",FileMode.Open,FileAccess.Read);
   long len=mystream.Length;
   
   mycmd.Parameters.Add("@a",OleDbType.Binary,(int)len,"picture");
   mycmd.Parameters["@a"].Direction=System.Data.ParameterDirection.Input;
                 
   byte []box=new byte[len];
   mystream.Read(box,0,(int)len);
  
   mycmd.Parameters["@a"].Value=box;
   
   //更新
   mycmd.ExecuteNonQuery();
   MessageBox.Show("ok");
   mystream.Close();
   mycnn.Close();

显示图片

OleDbConnection mycnn=new OleDbConnection("provider=Microsoft.jet.oledb.4.0;data source=f://dazhu.mdb");
   mycnn.Open();
    MessageBox.Show("ok.mycnn.open");
   OleDbCommand mycmd=new OleDbCommand("select * from info",mycnn );
    OleDbDataReader myrd=mycmd.ExecuteReader();
   if(myrd.Read())
   {
    //读取图片
    byte []box=(byte [])myrd["picture"];

    //构造流
    
    Stream stream1=new MemoryStream(box);
    this.pictureBox2.Image=System.Drawing.Image.FromStream(stream1);
               
    stream1.Close();
    
   }
   
   
   mycnn.Close(); 

SQL数据库
 mycnn=new SqlConnection(@"server=zhurongj;database=my1;Trusted_connection=yes");
   mycnn.Open();
    SqlCommand mycmd=new SqlCommand("update picture set picture=@a where ID=1",mycnn);
     
   FileStream mystream=new FileStream("f://1.jpg",FileMode.Open,FileAccess.Read);
   long len=mystream.Length;
   
   mycmd.Parameters.Add("@a",SqlDbType.Image,(int)len,"picture");
   mycmd.Parameters["@a"].Direction=System.Data.ParameterDirection.Input;
                 
   byte []box=new byte[len];
   mystream.Read(box,0,(int)len);

   mycmd.Parameters["@a"].Value=box;
   
   //更新
   mycmd.ExecuteNonQuery();
   MessageBox.Show("ok");
   mystream.Close();
   mycnn.Close();


显示到PICTURE控件
mycnn=new SqlConnection(@"server=zhurongj;database=my1;Trusted_connection=yes");
    mycnn.Open();
    MessageBox.Show("ok.mycnn.open");
    SqlCommand mycmd=new SqlCommand("select * from picture",mycnn);
   SqlDataReader  myrd=mycmd.ExecuteReader(); 
    
  
    if(myrd.Read())
    {
     //读取图片
     if(!myrd.IsDBNull(1))
     {
      byte []box=(byte [])myrd[1];
         
      //构造流
    
      Stream stream1=new MemoryStream(box);
      this.pictureBox2.Image=System.Drawing.Image.FromStream(stream1);
     
      stream1.Close();
     }
     else
     {

                MessageBox.Show("该字段是NULL");
     }
    
    }
   
   
    mycnn.Close();  
   }
   catch(Exception my)
   {
             MessageBox.Show(my.Message.ToString());

   }


把我刚才发的两个方法Copy过到同一文件去.然后把这句话改了,试一下

cmd.Parameters.Add(new SqlParameter("@photo",SqlDbType.Image));
cmd.Parameters["@photo"].Value = ConvertImage(System.Drawing.Image.FromFile("c://w.jpg"));


如果是子窗口的模式,是可以通过以下代码判断出某个子窗体是否已经打开:
form2 f = new form2();
foreach(Form key in this.MdiChildren)
{
    if(key.Name.ToUpper() == f.Name.ToUpper())
    {
       return;
    }
}
f.Show();

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值