Sqlbulkcopy에 더 많은 인수를 전달하는 방법

c# sql sqlbulkcopy sql-server

문제

sqlbulkcopy를 수행하는 동안 알리미를 호출합니다. 지금은 DB에 기록 된 행 수만 인쇄하고 있습니다. DB 이름, 현재 타임 스탬프 등과 같은 다른 인수를 인쇄하고 싶습니다. 누군가이 작업을 수행하는 방법을 알려 주시기 바랍니다.

인기 답변

이벤트 처리기에 인수를 제공 할 수는 없지만 원하는만큼의 로컬 정보를 캡처하는 대리자를 사용할 수 있습니다.

using (var bulkCopy = new SqlBulkCopy(...)) {
    string database = "myDatabase";
    bulkCopy.SqlRowsCopied += (o, e) => {
        Console.WriteLine(
            "Time: {0}, database: {1}, rows copied: {2}", 
            DateTime.Now, database, e.RowsCopied
        );
    };
    bulkCopy.WriteToServer(...);
}   

메서드에서 래핑하고 로컬 변수 대신 메서드 인수를 사용하여 일반화 할 수 있습니다. 또한 SqlBulkCopy 자체를 감싸고 사용자 지정 EventArgs 사용하여 고유 한 이벤트를 만들 수도 있지만 추가하는 정보의 경우에는 그만한 가치는없는 것 같습니다.



아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.