我正在使用一些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个值.
我怎么能做我想做的事?
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()
.