数据库中的字段类型是Image,1.我查询出来怎么接受,并在pictureBox1中显示,2.我把图片选到pictureBox1中之后,
怎么获取这个这个数据,用什么类型接受,然后插入数据库。 请高手指点 !感谢大家。

解决方案 »

  1.   

    图片存到数据库:
    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();
      

  2.   

    从数据库中读取图片: 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);
                    
    //判断文件是否存在
    //if(File.Exists("f:\\lingshi.jpg"))
    //{//删除
    //File.Delete("f:\\lingshi.jpg"); //}
    stream1.Close();

    }


    mycnn.Close();
      

  3.   

    楼上的正解,还请LZ在写入的时候注意数据库里的字段属性,要不然还是写不进去的
    ACCESS数据存图片的格式是OME格式