如何根据条件 取出DataTable里的几行数据给另外一个DataTable

时间:2021-11-21 06:33:15
例如DataTable里我想取出时间是2012-2-1号的数据,然后付给另外一个空的DataTable,怎么做?

5 个解决方案

#1


自己顶

#2



    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;
    }

其中一种,你也可以用最通俗的方式实现

#3


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

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

#4


引用 3 楼  的回复:
建立一个空的DataTable,结构一致

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

这个正解

#5


                    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);
                    }
大体就这个样子!

#1


自己顶

#2



    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;
    }

其中一种,你也可以用最通俗的方式实现

#3


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

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

#4


引用 3 楼  的回复:
建立一个空的DataTable,结构一致

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

这个正解

#5


                    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);
                    }
大体就这个样子!