将DataRows转换成DataTable .net编程 C#

今天做了一个缓存,将整张表信息存在了dataset中缓存了,然后程序中通过DataSet.select("")方法获取部分有用的datarows 但是通过这个list我又想获取ModelList,而这个DataTableToList方法传入的参数必须是datatable 那么我怎么将datarows转换成datatable呢?

假定你原本dataset叫做dt,datarows数组为dr[]
DataTable dtclone = dt.Tables[0].Clone();
foreach(DataRow row in dr) dtclone.Rows.Add(row);
//dtclone就是你要的datatable了
当然也可以添加一个能接受datarow的DataTableToList方法。追问

我写这个方法,但是提示 “该行已经属于另一个表。”

追答

查了一下,dt.Rows.Add(dr)要写成dt.Rows.Add(dr.ItemArray);

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-06-17
自带的clone都是浅clone,深clone得自己写。
根据已有的datarows数据创建一个新dataTable,字段和类型和datarows保持致,再把数据赋上,应该就可以
第2个回答  2013-06-17
说已属于其他表了,需要把他删除了就好了
相似回答