powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Несколько попыток конекта к базе....., затем эксепшн
7 сообщений из 7, страница 1 из 1
Несколько попыток конекта к базе....., затем эксепшн
    #36798802
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!!!
Ребята я вот так делаю конект к базе:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        public void Connect()
        {
            try
            {
                cn = new MySqlConnection();
                cn.ConnectionString = ConnectionString;
                cn.Open();                 
            }
 
            catch (Exception exp)
            {
                System.Windows.Forms.MessageBox.Show("Ошибка соединения с MySQL\n" + exp.Message + "Текст ошибки в отчете - exception.log\n");               
 
                StreamWriter exception = new StreamWriter(Application.StartupPath + @"\exception.log", true, Encoding.Default);
                exception.Write(DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss  ") + Convert.ToString(exp) + "\r\n");
                exception.Close();
                Application.Exit(); 
            }
        }

Все нормально, но я хочу чтоб эксепшин вываливался только после некоторого количества попыток....
подскажите Как, это по правильному сделать, чтоб не изобретать велосипед...
студия 2008, удаленная МайСкул
...
Рейтинг: 0 / 0
Несколько попыток конекта к базе....., затем эксепшн
    #36799205
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот что у меня получилось:

основная форма:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
bool WriteException = false;

 for (int i = 0; i < 3; i++)
            {
 
                if (MycSQL.Connect(WriteException))
                {
                    break;
                }
                if (i == 3)
                {
                    WriteException = true;
                    MycSQL.Connect(WriteException);                 
                }
                System.Threading.Thread.Sleep(10000);
            }

MycSQL - клас в котором методы работы с базой

собственно кусок класса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 public bool Connect(bool WriteException)
        {
            bool success = false;
 
            try
            {
                cn = new MySqlConnection();
                cn.ConnectionString = ConnectionString;
                cn.Open();
                success = true; 
            }
 
 
            catch (Exception exp)
            {
                //System.Windows.Forms.MessageBox.Show("Ошибка соединения с MySQL\n" + exp.Message + "Текст ошибки в отчете - exception.log\n");               
                if (WriteException)
                {
                    StreamWriter exception = new StreamWriter(Application.StartupPath + @"\" + DateTime.Now.ToString("dd.MM.yyyy_hh.mm.ss_") + "exception " + SystemInformation.UserName + ".log", true, Encoding.Default);
                    exception.Write(DateTime.Now.ToString("dd.MM.yyyy hh:mm:ss  ") + Convert.ToString(exp) + "\r\n");
                    exception.Close();
                    Application.Exit();
                }
            }
 
 
            return success;
        }
...
Рейтинг: 0 / 0
Несколько попыток конекта к базе....., затем эксепшн
    #36799206
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
System.Threading.Thread.Sleep(10000); - нужно для того чтобы попытки конекта были с промежутком 10 сек.

Вроде все правильно, но эксепшн не пишется, и прога продолжает выполнять код следующий за циклом (
...
Рейтинг: 0 / 0
Несколько попыток конекта к базе....., затем эксепшн
    #36799265
Курдль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sputnick,

В Вашем цикле i никогда не доходит до 3-х.
Вы точками останова пользоваться можете? Уж 3 итерации отследить можно было бы...
...
Рейтинг: 0 / 0
Несколько попыток конекта к базе....., затем эксепшн
    #36799369
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, это уже понял
...
Рейтинг: 0 / 0
Несколько попыток конекта к базе....., затем эксепшн
    #36799421
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно, почему то не завершается программа, продолжает выполнение.

если так сделать:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
  for (int i = 0; i < 4; i++)
            {
 
                if (MycSQL.Connect(WriteException))
                {
                    break;
                }
                if (i == 3)
                {
                    WriteException = true;
                    MycSQL.Connect(WriteException);
                    Application.Exit();
                }
                System.Threading.Thread.Sleep(10000);
            }

тоже не выходит
...
Рейтинг: 0 / 0
Несколько попыток конекта к базе....., затем эксепшн
    #36799781
Фотография Sputnick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
все, разобрался, всем спасиб
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Несколько попыток конекта к базе....., затем эксепшн
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]