ado.net - 我可以多次将相同的 DataRow 添加到 DataTable 中吗?

标签 ado.net recursion datatable dataset

如果我有一个 DataTable 并想创建一个新行,我首先调用 DataTable.NewRow()它返回一个 DataRow。然后这一行有表格的架构,我可以设置行中每个字段的值。此时表是否“知道”该行,或者仅在我调用 DataTable.Rows.Add(DataRow row) 后才会发生?

如果我调用 DataTable.Rows.Add()不止一次是在数据表中创建的具有重复值的重复行?

我问的原因是我正在尝试编写一个递归函数,该函数将遍历树结构并用值填充 DataTable。因此,我遇到为每个子级创建的行将具有具有所有相同值的列的情况,因为它们来自父级。

所以我的想法是将带有 parent 信息的 DataRow 传递给每个 child 。 child 将添加其信息,然后将行添加到表中。但我想知道是否需要调用 DataTable.NewRow()对于每个 child ,或者如果我多次添加同一行,是否会自动创建新行。

最佳答案

不,但是复制一行很容易,这样您就可以获得所需的内容(假设现有行位于名为 existingRow 的变量中):

var newRow = dataTable.NewRow();
newRow.ItemArray = existingRow.ItemArray;
dataTable.Rows.Add(newRow);

关于ado.net - 我可以多次将相同的 DataRow 添加到 DataTable 中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1332270/

相关文章:

c# - 简洁并执行多个相同的命令?

ado.net - Db命令和参数: Get the actual executed SQL (Parameter values filled in)

c# - 在 C# 中获取没有密码值的连接字符串

c# - 在 C# 中使用 ADO.NET 格式化内联 sql 的最佳实践是什么

python - 插入值时如何存储dict的差异?

Haskell 递归和类型错误

java - 使用 Jackson 和 Hibernate 的多对多无限递归

javascript - 如何正确分页数据表中的结果(ajax,服务器端)?

javascript - 没有插件的 jquery 排序表

c# - 如何在 C# 中为不同的数据源重用 DataTable?