var task = Task.Run(() => { var rows = Dominik.GetData(sqlconnectionstring, openFileDialog1, 10); var sqls = Dominik.InsertSql(rows, 10); try { //using (var connection = new SqlConnection(sqlconnectionstring)) { //connection.Open(); // wszystko w jednej tranzakcji, żeby mieć pewność, że dodamy albo wszystko albo nic //using (var transaction = connection.BeginTransaction()) { foreach (var sql in sqls) { //Console.WriteLine("Wykonuje zapytanie:"); //Console.WriteLine(); Thread.Sleep(500); //using (var command = new SqlCommand(sql, connection, transaction)) { // tutajliczysz ile CMD się wykonało, a nie ile wierszy wrzuciliśmy Wierszy = Wierszy + 14; //command.ExecuteNonQuery(); // co do tego nie jestem pewien, czy wystarczy z this.Begin czy txtBoxWczytywanie.BeginInvoke ? txtBoxWczytywanie.BeginInvoke(new Action(() => txtBoxWczytywanie.Text = $"Wczytano: {Wierszy}")); } } //transaction.Commit(); } } } catch (Exception) { throw; } });