我正在使用一些DataRow,并使用它,一些ItemArray。
我知道如何将值传入ItemArray,但在创建新Row时,我不知道如何设置值。
所以我尝试了这个:
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个值。
我怎样才能做我想做的事?
答案 0 :(得分:7)
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()
,都是一种品味问题。
答案 1 :(得分:1)
你可以按照以下方式进行..
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(我能理解的很多),你可以找到很多与此相关的例子。