如果我有一个DataTable并且想要创建一个新行,我首先调用DataTable.NewRow()
它返回一个DataRow.然后该行具有表的模式,我可以设置行中每个字段的值.在这一点上,表格"知道"关于Row,还是仅在我打电话后才发生DataTable.Rows.Add(DataRow row)
?
如果我调用DataTable.Rows.Add()
更多,那么在数据表中创建的重复行是否有重复值?
我问的原因是我正在尝试编写一个递归函数,它将迭代树结构并用值填充DataTable.因此,我有这样的情况:为每个子项创建的行将具有具有所有相同值的列,因为它们来自父项.
所以我的想法是将带有父母信息的DataRow传递给每个孩子.孩子将添加其信息,然后将行添加到表中.但是我想弄清楚我是否需要DataTable.NewRow()
为每个孩子调用,或者如果我多次添加同一行,将自动创建新行.
不,但是复制一行很容易,你可以得到你想要的东西(假设现有的行在一个名为existingRow的变量中):
var newRow = dataTable.NewRow(); newRow.ItemArray = existingRow.ItemArray; dataTable.Rows.Add(newRow);