繁体   English   中英

C#将数据表添加到数据表

[英]C# Adding a Datatable to a Datatable

我知道听起来确实很奇怪,但是我对C#还是陌生的,希望你们能帮助我。

我循环通过一个DataTable,然后执行qry,并将结果放入DataTable。

一条记录可以正常工作,但是一旦有更多记录,则只有最后一条记录在DT中,这很有意义,我只是不知道如何解决它。 我需要在DT中保存所有记录。

这是我的代码,欢迎任何建议。

  DataTable dt = ml.getRegistration(); DataTable dt2 = new DataTable(); foreach (DataRow row in dt.Rows) { dt2 = ml.getRegistrationExport(row["ID"]); } GridView1.DataSource = dt2; GridView1.DataBind(); 

如果ml.getRegistrationExport返回一个数据表,则当您遍历第一个数据表时,它将覆盖数据。.您需要使用dt2.merge将所有数据添加到该数据表中。 HTH。

DataTable dt = ml.getRegistration();
DataTable dt2 = new DataTable();

foreach (DataRow row in dt.Rows)
{

dt2.merge(ml.getRegistrationExport(row["ID"]));

}

GridView1.DataSource = dt2;
GridView1.DataBind();

我看到的问题之一是要遍历的每一行都替换dt2。 因此,如果您有5行,则将替换dt2 5次,而哪一行碰巧是最后一行将成为dt2的规则。

我会认为。

您是要为原始dt中的每一行向dt2添加一行吗?

DataTable dt = ml.getRegistration();
DataTable dt2 = new DataTable();

foreach (DataRow row in dt.Rows)
{
    DataRow newRow = dt2.NewRow();

    // What Does getRegistrationExport return?  
    // A row or series of rows or a new DT?  
    // Each would change solution
    newRow["SomeColumn"] = ml.getRegistrationExport(row["ID"]);

    dt2.Rows.Add(newRow);
}

GridView1.DataSource = dt2;
GridView1.DataBind();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM