向数据表中添加几乎相同的X行
本文关键字:数据表 添加 | 更新日期: 2023-09-27 18:18:05
假设我需要向我的数据表添加10行,除了一个值之外,它们实际上是相同的。因此,例如,我使用以下代码添加第一行:
row = myTable.NewRow();
row["col1"] = value1;
row["col2"] = value2;
row["col3"] = value3;
row["col4"] = value4;
row["col5"] = value5;
row["col6"] = value6;
myTable.Rows.Add(row);
接下来的9行完全相同,唯一的区别是"col4",因为"value4"在所有10行中都是不同的。
我如何能够插入相同的行X次,而不必重复前面的代码?基本上就是:
- 创建第一行
- 用值 填充Row1
- 复制Row1到新Row2
- 改变Row2("col4")
- 将这两行添加到myTable
谢谢。
简单的循环就可以了。你也可以使用重载的DataRowCollection。添加方法,该方法接受用于创建新行的值数组:
// e.g. you have 10 integers for col4
var col4values = new [] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
foreach(var col4value in col4values)
myTable.Rows.Add(value1, value2, value3, col4value, value5, value6);
您可以使用类似于下面的模式,您只需将您的值数组作为参数传递,并返回一个已填充的表:
private DataTable CreateRows(object[] column4Vals)
{
DataTable myTable = new DataTable();
foreach (object col in column4Vals)
{
DataRow row = myTable.NewRow();
row["col1"] = "value1";
row["col2"] = "value2";
row["col3"] = "value3";
row["col4"] = col;
row["col5"] = "value5";
row["col6"] = "value6";
myTable.Rows.Add(row);
}
return myTable;
}
这里还有一个更灵活的方法,你可以为你的标准数据分配任何其他值。
private DataTable CreateRows(object value1, object value2, object value3, object[] column4Vals, object value5, object value6)
{
DataTable myTable = new DataTable();
foreach (object col in column4Vals)
{
DataRow row = myTable.NewRow();
row["col1"] = value1;
row["col2"] = value2;
row["col3"] = value3;
row["col4"] = col;
row["col5"] = value5;
row["col6"] = value6;
myTable.Rows.Add(row);
}
return myTable;
}
在使用'DataRow'时应该非常小心。通常,您向表中添加对行的引用,并更改引用的行,而不是添加新行。
但是,您可以先复制数据row,然后再将其添加到表中。
调查:
http://msdn.microsoft.com/en-us/library/system.data.datatable.importrow (v = vs.110) . aspx
>