第一段代码:DataTable中的数据保存成xml文件
DataTable dt= new DataTable();
dt.TableName = "表名";
dt.Columns.Add("某列", typeof(byte[])); //是byte[]型的啊
DataRow dr = dt.NewRow();
dr["某列"] = "从某个地方来的字节数组数据";
dt.WriteXml("存放xml的文件");第二段代码:
DataSet ds = new DataSet(); 
ds.ReadXml(“存放xml的文件”); 
DataTable dt= ds.Tables[0]; 
byte[] data = Encoding.Default.GetBytes(dt.rows[0]["某列"].ToString()); //错这里了问题出在第二段,就是想把第一段代码存进去的字节数组数据读出来赋给data ,
用byte[] data =(byte[])dt.rows[0]["某列"]会报错,因为第二段的dt的"某列"不是byte[]型的,
用byte[] data = Encoding.Default.GetBytes(dt.rows[0]["某列"].ToString())呢,倒是不报错,可读出来的和存进去的数据不一样,维数就不一样,用ASCII啊Utf8啊啥的都不对
请教大家,该怎么把第二段代码的dt.rows[0]["某列"]转换成byte[]型的数据啊????

解决方案 »

  1.   

    string aa = dt.rows[0]["某列"].ToString();
    byte[] byteArry = new byte[aa.length];byteArry = System.Text.Encoding.Default.GetBytes(aa);
    string str = System.Text.Encoding.Default.GetString(byteArry);Response.Write(str); 
      

  2.   

    说了用System.Text.Encoding.Default这个方法不行的,再多弄些冗余语句也还不行啊
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data;namespace ConsoleApplication17
    {
        class Program
        {
            static void Main(string[] args)
            {
                DataTable dt = new DataTable();
                dt.TableName = "表名";
                dt.Columns.Add("某列", typeof(byte[]));
                DataRow dr = dt.NewRow();
                dr["某列"] = Encoding.Default.GetBytes("从某个地方来的字节数组数据");
                dt.Rows.Add(dr);
                dt.WriteXml(@"c:\a.xml", XmlWriteMode.WriteSchema);            DataSet ds = new DataSet();
                ds.ReadXml(@"c:\a.xml");
                DataTable dt2 = ds.Tables[0];
                byte[] data = (byte[])dt2.Rows[0]["某列"];
                Console.WriteLine(Encoding.Default.GetString(data));
                Console.Read();
            }
        }
    }
      

  4.   

    你怎么知道读出来的和存进去的数据不一样?
    要用System.Text.Encoding.Default.GetString(byteArry); 
    来读的
      

  5.   

    关键要把架构写进去,读取的时候数据集就知道这字段是byte[]类型的
    dt.WriteXml(@"c:\a.xml", XmlWriteMode.WriteSchema);