我试图遍历我的数据库,寻找具有日期范围的特定行。 每当我尝试使用DataTable.Import(DataRow)时,它会添加一个没有值的新行。 我如何"导入"将DataRow导入DataTable? 这是循环,谢谢!
public DataTable FilterDataTableByDates(DataTable td, DateTime from, DateTime to)
{
DataTable tempTd = new DataTable();
foreach (DataRow dr in td.Rows)
{
long ticks = Convert.ToInt64(dr["cpd_date"].ToString());
if (ticks > from.Ticks && ticks < to.Ticks)
{
tempTd.ImportRow(dr);
}
}
return tempTd.Copy();
}
答案 0 :(得分:2)
您可以使用Add方法将DataRow从一个数据表复制到另一个数据表:
tempTd.Rows.Add(dr.ItemArray);
即使你的方法可以工作,但你必须创建你的DataTable来处理来自原点的结构:
DataTable tempTd = td.Clone();
使用Clone()方法创建一个与原始数据表结构相同的新数据表,然后可以在其中导入行。
所以你的完整方法将成为:
public DataTable FilterDataTableByDates(DataTable td, DateTime from, DateTime to)
{
DataTable tempTd = td.Clone();
foreach (DataRow dr in td.Rows)
{
long ticks = Convert.ToInt64(dr["cpd_date"].ToString());
if (ticks > from.Ticks && ticks < to.Ticks)
{
tempTd.ImportRow(dr);
}
}
return tempTd.Copy();
}