假设我需要在我的数据表中添加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次?基本上,它将是:
感谢。
答案 0 :(得分:1)
简单的循环将完成这项工作。您还可以使用重载的DataRowCollection.Add方法,该方法接受用于创建新行的值数组:
// 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);
答案 1 :(得分:0)
您可以使用类似于以下的模式,您只需将值数组作为参数传入并返回填充表:
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;
}
答案 2 :(得分:0)
使用' DataRow'您应该非常小心。通常,您将对行的引用添加到表中,并更改引用的行,而不是添加新行。
然后,您可以先将数据行复制,然后再将其添加到表中。
查看:
http://msdn.microsoft.com/en-us/library/system.data.datatable.importrow(v=vs.110).aspx
以获得更好的解释和示例。