У меня есть довольно много данных, которые могут быть загружены в базу данных Из-за большого размера одна таблица занимает 5 минут, чтобы завершить вставку. 2 стола у меня ушло 10 минутAsync для массовой копии
static void Main(string[] args)
{
DataTableBulkInsert(DataTable1);
DataTableBulkInsert(DataTable2);
}
public static void DataTableBulkInsert(DataTable Table){
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(myConnection);
sqlBulkCopy.DestinationTableName = "dbo.DatabaseTable";
myConnection.Open();
sqlBulkCopy.WriteToServer(Table);
myConnection.Close();
}
Я сейчас пытаюсь сделать асинхра для массовой вставки, но есть ни какие-либо данные не вставлены ни дают мне ошибку. Как зафиксировать исключение?
static void Main(string[] args)
{
var insert1 = Task.Run(async() => await DataTableBulkInsert(DataTable1);
var insert2 = Task.Run(async() => await DataTableBulkInsert(DataTable2);
Task.WhenAll(insert1, insert 2);
}
public static async Task<Boolean> DataTableBulkInsert(DataTable Table)
{
try
{
SqlBulkCopy sqlBulkCopy = new SqlBulkCopy(myConnection);
sqlBulkCopy.DestinationTableName = "dbo.DatabaseTable";
myConnection.Open();
await sqlBulkCopy.WriteToServerAsync(Table);
myConnection.Close();
}
catch (Exception (e))
{
console.write(e);
}
return true;
}
Вы пытались настроить отладчик на строке 'console.write (e);'? В моем опыте методы async часто проглатывают исключения. – smoksnes
Используйте 'Task.WaitAll (insert1, insert 2)' –