读取XML中图片保存到DATASET中后插入数据库不显示的有关问题

读取XML中图片保存到DATASET中后插入数据库不显示的问题
因为工作需要,我从数据库中读取某一个表的信息并保存到XML文件中,其中有个字段是BLOB,存放图片,此时数据表中图片是正常显示的

保存到XML部分代码如下:

MemoryStream ms = new MemoryStream();
XmlTextWriter writer = null;

writer = new XmlTextWriter(ms, Encoding.Unicode);
 ds.WriteXml(writer);
int count = (int)ms.Length;
byte[] arr = new byte[count];
ms.Seek(0, SeekOrigin.Begin);
 ms.Read(arr, 0, count);

UnicodeEncoding utf = new UnicodeEncoding();
StreamWriter sw = new StreamWriter(PathFile);
sw.WriteLine("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
sw.WriteLine(utf.GetString(arr).Trim());
sw.Close();

.........省略


现在需要读取该XML中的内容,保存到dataset中并插入到ORACLE数据库中

读取XML部分代码如下:

StringReader ms = null;
 XmlTextReader reader = null;

XmlDocument xmld = new XmlDocument();
xmld.Load(PathFile);
DataSet ds = new DataSet();
 ms = new StringReader(xmld.InnerXml);
reader = new XmlTextReader(ms);
ds.ReadXml(reader);

//................
return ds;


上面的两个过程都没问题,现在就是插入的时候出问题了,其他的字段都能写入到数据库,只有BLOB类型的写入数据库有问题

for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
 {
           if (ds.Tables[0].Columns.Contains("char"))
             {
                        cmd.Parameters.Add("char", OracleType.VarChar).Value = ds.Tables[0].Rows[i][0];
             }

            if (ds.Tables[0].Columns.Contains("blob"))
             {
                        string str = ds.Tables[0].Rows[i][1].ToString();//现将ds中的图片对应的内容转成 string
                        byte[] bytes = Encoding.UTF8.GetBytes(str);//再转成字节数组
                        cmd.Parameters.Add("blob", OracleType.Blob).Value = bytes;
             }

             cmd.ExecuteNonQuery();
             cmd.Dispose();
}

但我查看数据库时,发现图片的列对应的图是黑色的,我觉得是转换的过程出的错,不知道具体错误在哪
请大家帮帮忙啊!!
------解决思路----------------------
还有,最好不要把整个图片文件的二进制数据都存到xml里
你完全可以保存成图片,然后xml里存个路径