string MyConnectionString = "provider=microsoft.jet.oledb.4.0;data source=D:\\db2.mdb";                OleDbConnection MyConnection = new OleDbConnection(MyConnectionString);
                Stream st = new FileStream("D:\\Hall.jpg", FileMode.Open, FileAccess.Read);
                int t = 1;
                byte[] b_img = new byte[st.Length];
                st.Read(b_img, 0, (int)st.Length);
                st.Close();                OleDbCommand MyCommand = new OleDbCommand("insert   into   img(a,b)   values(@t,@b_img)", MyConnection);
                OleDbParameter MyParameterI = new OleDbParameter("@t", OleDbType.Integer);
                MyParameterI.Value = t;
                MyCommand.Parameters.Add(MyParameterI);                OleDbParameter MyParameterB = new OleDbParameter("@b_img", OleDbType.Binary);
                MyParameterB.Value = b_img;
                MyCommand.Parameters.Add(MyParameterB);
                MyConnection.Open();
                MyCommand.ExecuteNonQuery();
                MyConnection.Close();高手帮我看看什么问题,我要发疯了!
上面代码,我不是完全懂,在网上凑的,其中data source=D:\\db2.mdb 中的db2是我自己做的一个空的access,其中做个空表格image, 不知道是否和image(a,b)有关,多谢了,在线等,谁有其它的把图片存到access的代码给我更欢迎!!!

解决方案 »

  1.   

    //序列化 
    Image I = new Bitmap(...); 
    System.IO.MemoryStream M=new System.IO.MemoryStream(); 
    I.Save(M, I.RawFormat); 
    byte[] B = M.ToArray(); ... //反序列化 
    M = new System.IO.MemoryStream(B); 
    I = new Bitmap(M);
      

  2.   

    没找到表'img',是否和这句话有关OleDbCommand MyCommand = new OleDbCommand("insert  into  img(a,b)  values(@t,@b_img)", MyConnection); 
    我觉得自己做的空表格很怪
      

  3.   

    我找到了一个错误,重新运行了一下, MyCommand.ExecuteNonQuery(); 又出现了另外的错误,数据类型和标准表达不一致。
      

  4.   

    OleDbParameter MyParameterB = new OleDbParameter("@b_img", OleDbType.Binary); 将红色改成OleDbType.Image 应该是这里有问题
      

  5.   

    Access的占位符用“?”你改为:OleDbCommand MyCommand = new OleDbCommand("insert  into  img(a,b)  values(?, ?)", MyConnection); 
    OleDbParameter MyParameterI = new OleDbParameter();
    MyParameterI.DbType = OleDbType.Integer;
    MyParameterI.Value = t; 
    MyCommand.Parameters.Add(MyParameterI); OleDbParameter MyParameterB = new OleDbParameter();
    MyParameterB.DbType = OleDbType.Binary; 
    MyParameterB.Value = b_img; 
    MyCommand.Parameters.Add(MyParameterB);