以下的代码传输DataTable没问题,但是其中的dt如果有图片列,图片列会变成字符串,哪位高人能帮帮忙?//得到原始dt
DataTable dt =此处代码略去,生成一个带图片列的dt;            DataSet ds = new DataSet();
            ds.Tables.Add(dt);
            byte[] buf = Encoding.Default.GetBytes(ds.GetXml());
            string xml = Encoding.Default.GetString(buf, 0, buf.Length);
            System.IO.StringReader sr = new System.IO.StringReader(xml);
            DataSet dsb = new DataSet();
            DataTable dtb = new DataTable();
            dsb.ReadXml(sr);
            dtb = dsb.Tables[0];//将dtb绑定到一个带图片列的datagridview就会报错

解决方案 »

  1.   

    1. DataGridView 那一列需要设计为 DataGridViewImageColumn
    2. DataTable 那一列要确认是否是byte[]
      

  2.   

    感谢您的关注!
    1、那一列是DataGridViewImageColumn
    2、DataTable转化为byte[]后再转化回来,图片列变成了字符串,我尝试把它转化为byte[],转化后也不行。转化代码如下:
    for (int i = 0, iCount = dtb.Rows.Count; i < iCount; i++)
                {
                    dtb.Rows[i]["fPhoto"] = Encoding.Default.GetBytes(dtb.Rows[i]["fPhoto"].ToString());
                }
      

  3.   

    我想把存放图片的那一列改为存放图片的路径然后用imagebox.url来引用是不是会好些啊
      

  4.   

    你在解析的时候,这一句要注意了
    string xml = Encoding.Default.GetString(buf, 0, buf.Length);你直接获取了缓冲区的长度,事实上,数据可能没有这么长。