2014-11-21 3 views
0

Я вызываю уведомитель при выполнении sqlbulkcopy. На данный момент я печатаю только количество строк, которые записываются в БД. Я хотел бы напечатать другие аргументы, такие как имя БД, текущая временная метка и т. Д. Может кто-то, пожалуйста, дайте мне знать, как это сделать.Как передать больше аргументов Sqlbulkcopy notifyafter

+0

Если вы имеете в виду SqlRowsCopiedEvent, нет никакой другой информации, которую аргументы события: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlrowscopiedeventargs(v=vs.110) .aspx – rene

+0

Вы не можете передать больше данных обработчику событий. Вам придется обрабатывать событие внутри вашего класса/метода, а в нем создавать настраиваемое событие с необходимыми дополнительными деталями. – Rhumborl

+0

В принципе, я бы назвал общий метод, который принимает имя файла, числовое значение, загружается, статус в качестве аргументов и обновляет общую таблицу, где мы отслеживаем количество строк, загружаемых в базу данных, и ее метку времени со статусом обработки ... SqlRowsCopied notifier принимает 2 аргументы один как объект другой как eventargument .. eventargument не может быть использован .. возможно ли передавать дополнительную информацию в качестве первого аргумента как объекта? – ABCDEFG

ответ

0

Вы не можете привести аргументы в обработчик событий, но вы можете использовать делегат, который улавливает столько местной информации, как вам нравится:

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, но для информации, которую вы добавляете, это, похоже, не стоит того.

 Смежные вопросы

  • Нет связанных вопросов^_^