2013-08-19 2 views
0

и спасибо за помощь! Я пытаюсь заполнить DataTable до того, как его вытащил отчет из Microsoft Reporting Services.Заполните DataTable с помощью массива NewRows

Я изначально думал, что могу запустить просмотр (в зависимости от того, сколько строк в моем «MainTable», и назначить каждую категорию и сбросить его в Rows.Add и повторить, но, видимо, я не могу Row.Add же имя NewRow. Вот то, что я до сих пор. спасибо за помощь !:

MyDataSet.ESSRow newESS = MyDataSet.ESS.NewESSRow(); 
     for (int i = 0; i < ds.Tables["MainTable"].Rows.Count; i++) 
     { 
      DataRow dRow = ds.Tables["MainTable"].Rows[i]; 
      if(Convert.ToInt32(dRow.ItemArray.GetValue(9).ToString()) > ShiftDelta)//checks if instance is longer than a shift 
      { 
      newESS.Station = "7"; 
      newESS.Switch ="7"; 
      newESS.Start = dRow.ItemArray.GetValue(6).ToString(); 
      newESS.Stop = dRow.ItemArray.GetValue(7).ToString(); 
      newESS.SwitchIs = dRow.ItemArray.GetValue(8).ToString(); 
      TimeSpan t = TimeSpan.FromSeconds(Convert.ToInt32(dRow.ItemArray.GetValue(9).ToString())); 
      newESS.Duration = string.Format("{0:D2}h:{1:D2}m:{2:D2}s", t.Hours, t.Minutes, t.Seconds); 
      MyDataSet.ESS.Rows.Add(newESS);     } 

     } 

ответ

-1

не пытайтесь добавить в той же строке несколько раз, вместо того, чтобы создать новую строку, чтобы добавить в каждой итерации цикла. в этом можно сделать просто, просто переведя объявление newESS в внутри петли, а не снаружи петли. Кроме того, вы шо uld также перемещает его внутри инструкции if, чтобы вы не создавали новую строку, если вы не собираетесь ее добавлять.

+0

Позвольте мне попробовать, и я отвечу коротко! –

0

Также попробуйте использовать importRow, поскольку это не дает раздражающей строке, уже принадлежащей другой ошибке таблицы.

Смежные вопросы