【问题标题】:DataColumnCollection does not contain a definition for CastDataColumnCollection 不包含 Cast 的定义
【发布时间】:2024-01-17 18:41:01
【问题描述】:

为什么这个演员不起作用? table.Columns.Cast<DataColumn>()

using (SqlBulkCopy bcp = new SqlBulkCopy(conn))
{
    if (conn.State != ConnectionState.Open)
        conn.Open();

    bcp.DestinationTableName = destinationTable;

    //map the columns in the datatable to the sql table
    table.Columns.Cast<DataColumn>().ToList().ForEach(c => bcp.ColumnMappings.Add(c.ColumnName, c.ColumnName));
}

我以为我要疯了,所以我尝试了一个测试表......同样的事情......

这是错误:

错误 1 ​​'System.Data.DataColumnCollection' 不包含 'Cast' 的定义和最佳扩展方法重载 'System.Data.EnumerableRowCollectionExtensions.Cast(System.Data.EnumerableRowCollection)' 有一些无效参数

错误 2 实例参数:无法从 'System.Data.DataColumnCollection' 转换为 'System.Data.EnumerableRowCollection'

【问题讨论】:

  • 试过清理并重新构建?
  • 试过了。也重新启动了 Vis Studio,错误仍然存​​在。

标签: c# casting datatable


【解决方案1】:

你必须在你的类中添加 System.Linq。

using System.Linq;

【讨论】:

    最近更新 更多