수색…
비고
WriteToServer
및 WriteToServerAsync
에는 대량 복사를위한 데이터 원본으로 IDataReader (예제에서 볼 수 있음), DataTable 및 DataRow 배열 ( DataRow[]
)을 허용하는 오버로드가 있습니다.
비동기 대량 복사
이 샘플에서는 여기에 설명 된 ToDataReader
메서드를 사용하여 SqlBulkCopy에 대한 일반 목록 DataReader 만들기 .
비동기 메서드를 사용하여이 작업을 수행 할 수도 있습니다.
public class Widget
{
public int WidgetId {get;set;}
public string Name {get;set;}
public int Quantity {get;set;}
}
public async Task AddWidgets(IEnumerable<Widget> widgets)
{
using(var conn = new SqlConnection("{connection string}")) {
await conn.OpenAsync();
using(var bulkCopy = new SqlBulkCopy(conn)) {
bulkCopy.BulkCopyTimeout = SqlTimeoutSeconds;
bulkCopy.BatchSize = 500;
bulkCopy.DestinationTableName = "Widgets";
bulkCopy.EnableStreaming = true;
using(var dataReader = widgets.ToDataReader())
{
await bulkCopy.WriteToServerAsync(dataReader);
}
}
}
}
대량 복사
이 샘플에서는 여기에 설명 된 ToDataReader
메서드를 사용하여 SqlBulkCopy에 대한 일반 목록 DataReader 만들기 .
비동기 메서드를 사용하여이 작업을 수행 할 수도 있습니다.
public class Widget
{
public int WidgetId {get;set;}
public string Name {get;set;}
public int Quantity {get;set;}
}
public void AddWidgets(IEnumerable<Widget> widgets)
{
using(var conn = new SqlConnection("{connection string}")) {
conn.Open();
using(var bulkCopy = new SqlBulkCopy(conn)) {
bulkCopy.BulkCopyTimeout = SqlTimeoutSeconds;
bulkCopy.BatchSize = 500;
bulkCopy.DestinationTableName = "Widgets";
bulkCopy.EnableStreaming = true;
using(var dataReader = widgets.ToDataReader())
{
bulkCopy.WriteToServer(dataReader);
}
}
}
}
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow