复制数据表中的两列

时间:2011-11-23 16:35:52

标签: c# datatable datarow

我有一个c#问题: 我有2个数据表A和B它们都包含一个名为“move”的列,我想创建另一个带有2列的Datable,其中一个带有“move”,另一个带有来自B的“move”,我试过这样的东西:< / p>

//cherche les last price
DataTable TickerPrice = new DataTable("Data");
TickerPrice = CheckBloomi(TickerName + " equity", "CHG_PCT_1D", FromThisTime, ToThisTime);

//cherche les last price
DataTable IndexPrice = new DataTable("Data");
IndexPrice = CheckBloomi("E300 Index", "CHG_PCT_1D", FromThisTime, ToThisTime);

DataSet MarketData = new DataSet();

DataTable Recap = MarketData.Tables.Add("Recap");
Recap.Columns.Add("Move Ticker price");
Recap.Columns.Add("Move Index price");

foreach (DataRow sourcerow in TickerPrice.Rows)
{
    DataRow destRow = Recap.NewRow();
    destRow["Move Ticker price"] = sourcerow["CHG_PCT_1D"];
    Recap.Rows.Add(destRow);
}

foreach (DataRow sourcerow in IndexPrice.Rows)
{
    DataRow destRow = Recap.NewRow();
    destRow["Move Index price"] = sourcerow["CHG_PCT_1D"];
    Recap.Rows.Add(destRow);
}

这样可以复制一列(对于第一个foreach循环),但是对于第二列,我将数字移位,因为我正在重新创建新行。

你知道怎么做吗?,如果不够清楚,请告诉我

2 个答案:

答案 0 :(得分:0)

您可以将NewRow()Rows.Add()从内循环中取出吗?像这样:

DataRow destRow = Recap.NewRow();
foreach (DataRow sourcerow in TickerPrice.Rows)
{
    destRow["Move Ticker price"] = sourcerow["CHG_PCT_1D"];
}

foreach (DataRow sourcerow in IndexPrice.Rows)
{
    destRow["Move Index price"] = sourcerow["CHG_PCT_1D"];
}
Recap.Rows.Add(destRow);

这假设TickerPrice.Rows和IndexPrice.Rows中的值对齐。

答案 1 :(得分:0)

假设TicketPrice和IndexPrice表都匹配,那么您可以执行以下操作:

for (int i = 0; i < TickerPrice.Rows.Count; i++)
{
    DataRow destRow = Recap.NewRow();
    destRow["Move Ticker price"] = TickerPrice.Rows[i]["CHG_PCT_1D"];
    destRow["Move Index price"] = IndexPrice.Rows[i]["CHG_PCT_1D"];

    Recap.Rows.Add(destRow);
}