Добрый день, есть клиентская программа + сервер (ms sql 2008). На сервере процедуры, которые в зависимости от входных параметров и своей сути выполняют разные вещи. На клиенте, форма в которой пользователь выбирает даты,метод расчета. При выполнении возникает ошибка "истекло время ожидания до завершения выполнения операции или сервер не отвечает". Делаю вот что:
| Код | StringBuilder errorMessages = new StringBuilder(); //checkBox1.Checked = false; checkBox1.Enabled = false; try { string conSQL = @"Data Source=base1;User ID=sa;Password=*****;Initial Catalog=R"; SqlConnection con = new SqlConnection(conSQL); SqlCommand sqlcom = new SqlCommand(); sqlcom = con.CreateCommand(); sqlcom.CommandType = CommandType.StoredProcedure; sqlcom.CommandText = "proc1"; sqlcom.Parameters.Clear(); SqlParameter d1 = sqlcom.Parameters.Add("@dtn", SqlDbType.Date); SqlParameter d2 = sqlcom.Parameters.Add("@dtx", SqlDbType.Date); d1.Direction = ParameterDirection.Input; d2.Direction = ParameterDirection.Input; d1.Value = dateTimePicker1.Value; d2.Value = dateTimePicker2.Value; con.Open(); sqlcom.ExecuteNonQuery(); sqlcom.CommandTimeout = 1000000000; sqlcom.Cancel(); con.Close();
MessageBox.Show("Хранимая процедура расчета текущих отработала без ошибок"); } catch (SqlException ex) { for (int i = 0; i < ex.Errors.Count; i++) { errorMessages.Append("Index #" + i + "\n" + "Message: " + ex.Errors[i].Message + "\n" + "LineNumber: " + ex.Errors[i].LineNumber + "\n" + "Source: " + ex.Errors[i].Source + "\n" + "Procedure: " + ex.Errors[i].Procedure + "\n"); } MessageBox.Show(errorMessages.ToString()); }
|
увеличивал таймаут но ошибка всё равно ловится. Что я не правильно делаю?
P.S. Запускаю на самом сервере(сервер = моей машине с которой я запускаю прогу C#) выполнение процедуры,отрабатывает на ура. |