我想创建一个数据表的副本。我不确定这样做的正确方法是什么。所以,我决定使用
DataTable filteredData = sourceDataTable.Select(expression).CopyToDataTable();
如本文所述 - How to pass DataTable.Select() result to a new DataTable?
我尝试通过设置expression =“where'TRUE'='TRUE'”来使用它。我希望这不会过滤原始数据表中的任何行,即完整副本。但是,我收到了错误 - System.Data.SyntaxErrorException:语法错误:''TRUE''运算符后缺少操作数。
如何轻松复制数据表?
答案 0 :(得分:3)
您可以使用DataTable.Copy方法。
复制创建一个新的DataTable,其结构和数据与原始DataTable相同。
var copiedDataTable = sourceDataTable.Copy();
答案 1 :(得分:2)
从Winney响应开始,您可以使用DataTable.Copy(可能是您的最佳选择),但如果您仍想使用Select
,则不要传递任何过滤器表达式
DataTable filteredData = sourceDataTable.Select().CopyToDataTable();
DataTable.Select有一个不接受任何参数的重载因此选择DataTable中存在的所有内容