使用SqlBulkCopy将数组插入表中

时间:2018-11-15 22:15:27

标签: c# ado.net sqlbulkcopy

我有一个只有两列Id和Name的表。其中ID是自动递增的主键。我的数组可能包含数百个项目,因此我不想使用任何循环。我的代码如下:

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Name", typeof(string)));
foreach (string item in arrItems)
    dt.Rows.Add(item);

using (SqlBulkCopy bc = new SqlBulkCopy(connection, DB2BulkCopyOptions.KeepIdentity))
{   
    bc.DestinationTableName = destinationTableName;
    bc.ColumnMappings.Add("Name", "Name");
    bc.WriteToServer(dt);
}

我以这种方式编写了代码。有什么方法可以从数组中插入数据(无需创建表)?

1 个答案:

答案 0 :(得分:0)

您可以创建一个包装Array并实现IDataReader的类。该类的实例可以传递到SqlBulkCopy的WriteToServer方法。