скопировать два столбца в таблице данных - PullRequest
1 голос
/ 23 ноября 2011

У меня есть вопрос ac #: у меня есть 2 таблицы данных A и B, каждый из которых содержит столбец с именем «move», я хочу создать еще один Datable с двумя столбцами, один с «move» из A, другой с «move» изB, я попробовал что-то вроде этого:

//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), но затем для второго столбца у меня смещено число, потому что я воссоздаю новые строки.1004 *

У вас есть идея, как это сделать? Дайте мне знать, если это не достаточно ясно

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Если предположить, что таблицы 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);
}
0 голосов
/ 23 ноября 2011

Можете ли вы просто извлечь 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 выстраиваются в линию.

...