C# 使用新行数组填充数据表
谢谢你的帮助!在从Microsoft Reporting Services中提取报告之前,我正在尝试填充数据表 我最初认为我可以根据主表中的行数运行for look,然后分配每个类别并将其刷新为一行。添加并重复,但显然我无法添加行。添加相同名称的NewRow。这是我到目前为止所做的。谢谢你的帮助!:C# 使用新行数组填充数据表,c#,arrays,reporting-services,datatable,C#,Arrays,Reporting Services,Datatable,谢谢你的帮助!在从Microsoft Reporting Services中提取报告之前,我正在尝试填充数据表 我最初认为我可以根据主表中的行数运行for look,然后分配每个类别并将其刷新为一行。添加并重复,但显然我无法添加行。添加相同名称的NewRow。这是我到目前为止所做的。谢谢你的帮助!: MyDataSet.ESSRow newESS = MyDataSet.ESS.NewESSRow(); for (int i = 0; i < ds.Tables["Main
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); }
}
不要多次尝试添加同一行,而是创建一个新行以添加到循环的每个迭代中。最简单的方法是将newESS声明移动到循环内部而不是循环外部。除此之外,您还应该将其移动到if语句中,这样,如果您不打算添加新行,就不会创建新行。还可以尝试使用importRow,因为这不会导致恼人的行已经属于另一个表错误。让我尝试一下,我会很快做出响应!