日期:2014-05-17  浏览次数:20426 次

如何根据条件 取出DataTable里的几行数据给另外一个DataTable
例如DataTable里我想取出时间是2012-2-1号的数据,然后付给另外一个空的DataTable,怎么做?

------解决方案--------------------
C# code

    protected void Page_Load(object sender, EventArgs e)
    {
        GetData();
    }

    private DataTable GetData()
    {
        DataTable dt = new DataTable();

        dt.Columns.Add("Id", typeof(int));
        dt.Columns.Add("Time", typeof(string));

        dt.Rows.Add(1, "2012-2-1");
        dt.Rows.Add(2, "2012-2-2");
        dt.Rows.Add(3, "2012-2-3");
        dt.Rows.Add(4, "2012-2-4");
        dt.Rows.Add(5, "2012-2-5");
        dt.Rows.Add(6, "2012-2-1");
        dt.Rows.Add(7, "2012-2-2");
        dt.Rows.Add(8, "2012-2-2");
        dt.Rows.Add(9, "2012-2-1");


        dt = dt.AsEnumerable().Where(o => DateTime.Parse(o.Field<string>("Time")) == DateTime.Parse("2012-2-1")).CopyToDataTable();

        return dt;
    }

------解决方案--------------------
建立一个空的DataTable,结构一致

DataTable newdt=SourceDt.Clone();
DataRow[] spliterros=SorceDt.Select('条件');
for(i=0;i<spliterros.Length;i++)
{
newdt.ImportRow(spliterros[i]);
}
------解决方案--------------------
探讨

建立一个空的DataTable,结构一致

DataTable newdt=SourceDt.Clone();
DataRow[] spliterros=SorceDt.Select('条件');
for(i=0;i<spliterros.Length;i++)
{
newdt.ImportRow(spliterros[i]);
}

------解决方案--------------------
DataTable newdt=new DataTable();
newdt.Columns.Add(new DataColumn("日期"));
for(int i=0 ;i<olddt.Rows.Count;i++)
{
DataRow dr = newdt.NewRow();
dr[0] = olddt.Rows[i][1];
newdt.ImportRow(dr);
}
大体就这个样子!