向行项数组添加值

本文关键字:添加 数组 | 更新日期: 2023-09-27 17:55:36

我正在使用一些DataRow,并使用它,一些ItemArray。

我知道如何将值放入 ItemArray,但在创建新行时我不知道如何设置值。

所以我试了这个:

                    DataRow newRow = vDsMod.Tables[0].NewRow();
                    newRow.ItemArray[0] = "".ToArray();
                    newRow.ItemArray[1] = "".ToArray();
                    newRow.ItemArray[2] = "Employee".ToArray();
                    newRow.ItemArray[3] = "".ToArray();
                    vDsMod.Tables[0].Rows.Add(newRow);

                    DataRow newRow = vDsMod.Tables[0].NewRow();
                    newRow.ItemArray.SetValue("", 0);
                    newRow.ItemArray.SetValue("", 1);
                    newRow.ItemArray.SetValue("Employee", 2);
                    newRow.ItemArray.SetValue("", 3);
                    vDsMod.Tables[0].Rows.Add(newRow);

但我在 ItemArray 中只得到了空字段。值 0,1,3 可以为空,由于其他行的 ItemArray 长度为 4,因此我也设置了 4 个值。

我怎样才能做我想做的事?

向行项数组添加值

ItemArray返回一个包含所有字段的object[]。通过此处的索引访问它:

newRow.ItemArray[0] = "".ToArray();

您正在访问单个字段并分配新值。但是你分配了一个char[],因为你使用了String.ToArray(),这是没有意义的。

相反,我会使用强类型SetField方法,该方法也支持可为空的类型:

DataRow newRow = vDsMod.Tables[0].Rows.Add();
newRow.SetField(0, ""); 
newRow.SetField(1, ""); 
newRow.SetField(2, "Employee"); 
newRow.SetField(3, ""); 

有了Rows.Add();DataRow就已经添加。是使用DataTable.NewRow()并在以后手动添加还是DataTable.Rows.Add()添加是一个品味问题。

你可以按下面去..

   DataRow relation;
     // Declare the array variable. 
    object [] rowArray = new object[2];
   for(int i = 0; i <10; i++)
    {
      rowArray[0]=null;
       rowArray[1]= "item " + i;
      relation = dt.NewRow();
      relation.ItemArray = rowArray;
      dt.Rows.Add(relation);
    }

我希望它能帮助你是的,它在微软帮助上。但是根据你的问题,你似乎没有搜索一点点,你只是提出了这个问题。您想知道如何初始化 ItemArray(我能理解的),您可以找到很多与此相关的示例。