我有一个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循环),但是对于第二列,我将数字移位,因为我正在重新创建新行。
你知道怎么做吗?,如果不够清楚,请告诉我
答案 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);
}