我直接打开Access 数据库将图片保存到OLE对象字段时,利用selecte Photo from Card ,
水晶报表 的Photo数据库字段中能够正常显示图片,但是我用一下语句保存图片:
 OpenFileDialog opfile = new OpenFileDialog();
            opfile.Filter = "(*.bmp)|*.bmp";
            if (opfile.ShowDialog() == DialogResult.OK)
            {
                string fullpath = opfile.FileName;
                Bitmap bmpt = new Bitmap(fullpath);
                pbxPhoto.Image = bmpt;//显示图片在pictureBox 里
 
                string sSQL = "UPDATE Card SET " + " Photo =  '"+bmpt+"'"
                     + " where ID = '" + txtBID.Text + "'";
                Result ret = SQL.SQLExec(sSQL);//执行SQL语句
              }
以上语句可以执行,并将图片以 长二进制数据 格式保存到 Card 表Photo 中,但在水晶报表无法显示图片
请大虾们指点。
              

解决方案 »

  1.   

    其实。。是BYTE[] 型OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"F:\Documents and Settings\hardes\桌面\blob");
                conn.Open();
                string path = @"D:\photo\100_4683.JPG";
                OleDbCommand cmd = new OleDbCommand("insert into blob(pic) values(@para1)", conn);
                OleDbParameter para = new OleDbParameter("@para1", OleDbType.Binary);            para.Value =(byte[]) Class1.ReadFileToByte(path);
                cmd.Parameters.Add(para);
                int i = cmd.ExecuteNonQuery();            cmd.Dispose();
                conn.Close();
                conn.Dispose();            Console.WriteLine("Excute Result:{0}", i);
                Console.ReadKey();