Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用新行数组填充数据表_C#_Arrays_Reporting Services_Datatable - Fatal编程技术网

C# 使用新行数组填充数据表

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

谢谢你的帮助!在从Microsoft Reporting Services中提取报告之前,我正在尝试填充数据表

我最初认为我可以根据主表中的行数运行for look,然后分配每个类别并将其刷新为一行。添加并重复,但显然我无法添加行。添加相同名称的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);                 }

        }

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

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

让我尝试一下,我会很快做出响应!