使用XmlTextReader来做吧XmlTextReader reader = new XmlTextReader("Xml.xml");
//....int size = 图片大小;//可能要存储在Xml中
byte[] img = new byte[size];
reader.ReaderBinHex(img,0,size);MemoryStream ms = new MemoryStream();
ms.Write(img,0,img.Length);Bitmap bmp = new Bitmap(ms);ms.Close();//.....

解决方案 »

  1.   

    sorry:reader.ReaderBinHex(img,0,size); -->reader.ReadBase64(img,0,size);
      

  2.   

    我做的只是一个WebService,我只知道pic数据不知道它的大小,数据库是不允许改变的,帮帮在想想办法
      

  3.   

    可以参考下net_lover的这个例子
    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=EBD43E74-1BDE-43AA-DEAF-211FA24A7BC2
      

  4.   

    此问题的真正现象是:当数据表 "Photo" 中的 "PIC" 字段类型为Blob时,读出的数据的长度是2030,而"PIC" 字段类型为"LONG RAW" 读出的长度却为100,而且不管多大的图片数据,全都是100,我到底该怎么办呀!
    我用的是:OleDBConnect,OleDbDataReader和OleDbDataAdapter都试了,结果是一样的
      

  5.   

    测试的xml文件节点为一个res的一图片的二进制文件流
    System.Xml.XmlDocument xx = new System.Xml.XmlDocument();
    xx.Load(@"c:\test.xml");
    string objectStr = xx.LastChild.InnerText;  MemoryStream FileStreamObj =  new MemoryStream();
    byte[] binary = Convert.FromBase64String(objectStr);
    FileStreamObj.Write(binary,0,binary.GetLength(0));  
    try
    {
      this.pictureBox2.Image = Image.FromStream(FileStreamObj); }catch(System.Exception error)
    {
    MessageBox.Show(error.Message);
    }
    FileStreamObj.Close(); 
    至于楼主你无法正确获得它的长度,你可以考虑将它写到xml文件中,然后再读出来.
      

  6.   

    我是这样解决的,我原来用VB取出oracle的数据BLOB,在oracle 8.1.5下面取不出来,后来我用在客户端安装了一个oracle8.1.7解决了,你试一下在客户端安装一个新一点的版本.可能是客户端版本问题,你试一下祝你好运