C# 在C中向DataTable添加DataRow对象#

C# 在C中向DataTable添加DataRow对象#,c#,datatable,C#,Datatable,我试图在数据库中循环查找具有日期范围的特定行。 每当我尝试使用DataTable.Import(DataRow)时,它都会添加一个没有值的新行。 如何将数据行“导入”到数据表中? 这是循环,谢谢 public DataTable FilterDataTableByDates(DataTable td, DateTime from, DateTime to) { DataTable tempTd = new DataTable(); fore

我试图在数据库中循环查找具有日期范围的特定行。 每当我尝试使用DataTable.Import(DataRow)时,它都会添加一个没有值的新行。 如何将数据行“导入”到数据表中? 这是循环,谢谢

        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();
    }
公共DataTable筛选器DataTableByDates(DataTable td、DateTime from、DateTime to)
{
DataTable testd=新DataTable();
foreach(td.行中的数据行dr)
{
长刻度=Convert.ToInt64(dr[“cpd_date”].ToString());
如果(滴答声>从.ticks&&ticks<到.ticks)
{
诱惑。进口(dr);
}
}
返回诱惑的.Copy();
}

您可以使用Add方法将数据行从一个数据表复制到另一个数据表:

tempTd.Rows.Add(dr.ItemArray);
即使您的方法也可以工作,但您必须从原点创建数据表:

DataTable tempTd = td.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();
}
公共DataTable筛选器DataTableByDates(DataTable td、DateTime from、DateTime to)
{
DataTable testd=td.Clone();
foreach(td.行中的数据行dr)
{
长刻度=Convert.ToInt64(dr[“cpd_date”].ToString());
如果(滴答声>从.ticks&&ticks<到.ticks)
{
诱惑。进口(dr);
}
}
返回诱惑的.Copy();
}