110,538
社区成员
发帖
与我相关
我的任务
分享
//得到原始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就会报错
string xml = Encoding.Default.GetString(buf, 0, buf.Length);
你直接获取了缓冲区的长度,事实上,数据可能没有这么长。for (int i = 0, iCount = dtb.Rows.Count; i < iCount; i++)
{
dtb.Rows[i]["fPhoto"] = Encoding.Default.GetBytes(dtb.Rows[i]["fPhoto"].ToString());
}