Ein passabler Weg über ADO.NET eine große Menge von Inserts nacheinander zu machen ist SqlBulkCopy() - damit spart man sich aufwändiges Schleifenlaufen oder Programmieren von Stored Procedures.
Beispiel:
DataTable source = new DataTable("Industries");
DataColumn col = new DataColumn();
col.DataType = System.Type.GetType("System.Int32");
col.ColumnName = "FkAddressItemId";
source.Columns.Add(col);
col = new DataColumn();
col.DataType = System.Type.GetType("System.Int32");
col.ColumnName = "FkAddressMachineTypeId";
source.Columns.Add(col);
DataRow item;
foreach (AddressIndustry industry in a.Industries)
{
item = source.NewRow();
item[0] = newAddressID;
item[1] = industry.ID;
source.Rows.Add(item);
}
using (SqlBulkCopy bulk = new SqlBulkCopy(connection))
{
bulk.DestinationTableName = "ComboMachineTypesItems";
bulk.ColumnMappings.Add("FkAddressItemId", "FkAddressItemId");
bulk.ColumnMappings.Add("FkAddressMachineTypeId",
"FkAddressMachineTypeId");
bulk.WriteToServer(source);
}
Der Vorteil: Speed, Speed, Speed!