0

并感谢您的帮助!我正在尝试在从 Microsoft Reporting Services 中提取报告之前填充 DataTable。

我最初以为我可以运行一个 for 外观(取决于我的“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);                 }

        }
4

2 回答 2

0

还尝试使用 importRow ,因为这不会给出恼人的行已经属于另一个表错误。

于 2013-08-19T19:42:47.620 回答
-1

不要尝试多次添加同一行,而是创建一个新行以在循环的每次迭代中添加。这可以通过将声明移动newESS到循环内部而不是循环外部来最简单地完成。除此之外,您还应该将其移动到if语句内部,这样如果您不打算添加新行,就不会创建新行。

于 2013-08-19T18:41:10.127 回答