【问题标题】:Copy selected data from DataTable to another DataTable将所选数据从 DataTable 复制到另一个 DataTable
【发布时间】:2013-12-01 04:51:06
【问题描述】:

我想从一个数据表中选择一些数据并将其复制到另一个数据表中。我在一个问题中找到了答案 - How to query a DataTable in memory to fill another data table

DataTable table = GetDataTableResults();
DataTable results = table.Select("SomeIntColumn > 0").CopyToDataTable();

此代码不起作用并导致错误 -

'System.Array' does not contain a definition for 'CopyToDataTable' and 
no extension method 'CopyToDataTable' accepting a first argument of type 
'System.Array' could be found (are you missing a using directive or 
an assembly reference?)

我正在使用 Visual Studio 2008 和 .net 3.5。

【问题讨论】:

    标签: c# datatable


    【解决方案1】:

    确保您有正确的参考资料。在此您需要 System.Data.DataSetExtensions 程序集和 System.Data 命名空间。以下链接应该会有所帮助...

    http://msdn.microsoft.com/en-us/library/bb396189(v=vs.110).aspx

    祝你好运!

    编辑:参考截图...

    【讨论】:

    • 不起作用。我在发布问题之前尝试了该链接。我在参考菜单中找不到 System.Data.DataSetExtensions.dll。
    • 我在我的菜单中看到了它。我认为这个库仅在 .NET 3.5 及更高版本中可用
    • 我仍然无法在我的菜单中看到它。另外,能发个大图吗?我试着点击你的,但它不会变大。谢谢。
    • 更新了图片。有更好的吗?
    • 以下链接将引导您完成更改目标 .NET 框架版本的过程...msdn.microsoft.com/en-us/library/vstudio/bb398202(v=vs.90).aspx
    【解决方案2】:

    您始终可以遍历从Select() 返回的DataRow 对象数组并将它们导入新数据表,如下所示:

    DataTable table = GetDataTableResults();
    DataTable results;
    
    DataRow[] rowArray = table.Select("SomeIntColumn > 0");
    
    foreach (DataRow row in rowArray) 
    {
        results.ImportRow(row);
    }
    

    【讨论】:

    • 感谢您向我展示另一种方式。但是,我更喜欢不使用行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 2011-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-26
    相关资源
    最近更新 更多