Мне нужен индикатор выполнения для моего приложения. Я загружаю данные через текстовый файл в SQL Server, но это занимает много времени, а также я использовал фона рабочего для того же самого, но это не работает должным образом, поэтому мне просто нужно знать, есть ли способ, которым я могу использовать индикатор выполнения с SQL Bulk Copy и это говорит мне, что 2000 записей вставлены? Вот мой код:Мне нужен прогрессбар с SQLBulkcopy
public void bulkinsert(string tablename, DataTable dt)
{
if (con.State == ConnectionState.Closed)
{
con.Open();
}
SqlBulkCopy blkcopy = new SqlBulkCopy(con);
blkcopy.DestinationTableName = tablename;
blkcopy.BatchSize = dt.Rows.Count;
blkcopy.BulkCopyTimeout = 1500;
blkcopy.WriteToServer(dt);
blkcopy.Close();
}
Я очень ценю ваши ответы.
Я бы рекомендовал использовать загрузочное колесо в этом случае, может быть, с таймером, что позволяет пользователю знать, что это что-то делать. В противном случае точность индикатора выполнения будет ужасной, и пользователь определенно подумает, что что-то не так, если оно застряло на 99%. <-Microsoft используется для этого alllll время. – FirebladeDan
Используйте свойство NotifyAfter класса SqlBulkCopy, чтобы указать порог уведомления и уловить событие SqlRowsCopied, чтобы обновить вашу панель прогресса. См. Https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy(v=vs.110).aspx – Kevin