我在执行sqlbulkcopy时调用通知程序。截至目前,我只打印写入数据库的行数。我想打印其他参数,如DB名称,当前时间戳等。有人可以告诉我如何做到这一点。
答案 0 :(得分:1)
您无法为事件处理程序提供参数,但您可以使用捕获尽可能多的本地信息的委托:
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
并创建自己的事件,但是对于您要添加的信息,这似乎不值得。