是否可以通过单个调用向DataTable中添加几行?
问题在于我需要创建一个DataTable,其中每一列在写入DataTable之前都需要进行先前处理。逐行编写会很不方便。
也就是说,我需要创建一个具有N个空行的DataTable,并在以列为基础的情况下稍后写入值。
如果您想要向一个所有列都为空的DataTable
中添加n
行,则无法避免使用循环。可以使用不带参数的DataRowCollection.Add
来添加多行:
for(int i = 0; i < n; i++)
table.Rows.Add(); // all fields get their default value
for(int i = 0; i < n; i++)
table.Rows.Add();
DataRow newBlankRow = theDataTable.NewRow();
theDataTable.Rows.InsertAt(newBlankRow, theDataTable.Rows.Count);
Dim tmp As DataTable = New DataTable
Dim pk(dst.PrimaryKey.Length - 1) As DataColumn
For Each col As DataColumn In dst.PrimaryKey
pk(j) = tmp.Columns.Add(col.ColumnName, col.DataType)
j += 1
Next
tmp.PrimaryKey = pk
tmp.Merge(src, False, MissingSchemaAction.Ignore) 'add rows
For Each col As DataColumn In src.Columns 'add empty columns
If dst.Columns.Contains(col.ColumnName) _
AndAlso Not tmp.Columns.Contains(col.ColumnName) _
Then tmp.Columns.Add(col.ColumnName, col.DataType)
Next
dst.Merge(tmp, True, MissingSchemaAction.Ignore) 'clear destination columns