将一个数据表复制到另一个数据表c#
Copying one datatable to another datatable c#
我有一个名为 dt 的数据表,其中包含 日期、姓名、主题 等列。
我想使用 where 条件将此 dt 的一部分复制到另一个数据表 dt3。
foreach (DataRow row in dt.Rows)
{
cellData =(DateTime)row["date"];
dt3 = dt.AsEnumerable()
.Where (rows =>rows.Field<DateTime>("date")== cellData )
.CopyToDataTable();
}
我正在尝试这个,但它给出了异常。
请为此提供解决方案,否则如何通过 select 查询
使用
您正在尝试从每一行中过滤 table。这是不正确的,将为每一行创建一个数据table。
如果要过滤数据表,可以使用 dt.Select() 或使用 Linq :
var dateFilter = DateTime.Parse("1/1/2015");
var dt3 = dt.AsEnumerable().Where(x => x.Field<DateTime>("date") == dateFilter).CopyToDataTable();
如果这不是您想要执行的操作,请提供更多解释。
数据表 dt 可能有列 date
的行具有空值
比较日期时使用可为空的 DateTime
dt3 = dt.AsEnumerable()
.Where(rows => rows.Field<DateTime?>("date") == cellData )
.CopyToDataTable();
我有一个名为 dt 的数据表,其中包含 日期、姓名、主题 等列。 我想使用 where 条件将此 dt 的一部分复制到另一个数据表 dt3。
foreach (DataRow row in dt.Rows)
{
cellData =(DateTime)row["date"];
dt3 = dt.AsEnumerable()
.Where (rows =>rows.Field<DateTime>("date")== cellData )
.CopyToDataTable();
}
我正在尝试这个,但它给出了异常。 请为此提供解决方案,否则如何通过 select 查询
使用您正在尝试从每一行中过滤 table。这是不正确的,将为每一行创建一个数据table。
如果要过滤数据表,可以使用 dt.Select() 或使用 Linq :
var dateFilter = DateTime.Parse("1/1/2015");
var dt3 = dt.AsEnumerable().Where(x => x.Field<DateTime>("date") == dateFilter).CopyToDataTable();
如果这不是您想要执行的操作,请提供更多解释。
数据表 dt 可能有列 date
的行具有空值比较日期时使用可为空的 DateTime
dt3 = dt.AsEnumerable()
.Where(rows => rows.Field<DateTime?>("date") == cellData )
.CopyToDataTable();