Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Несколько попыток конекта к базе....., затем эксепшн / 7 сообщений из 7, страница 1 из 1
18.08.2010, 19:55
    #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
19.08.2010, 08:41
    #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
19.08.2010, 08:41
    #36799206
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько попыток конекта к базе....., затем эксепшн
System.Threading.Thread.Sleep(10000); - нужно для того чтобы попытки конекта были с промежутком 10 сек.

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

В Вашем цикле i никогда не доходит до 3-х.
Вы точками останова пользоваться можете? Уж 3 итерации отследить можно было бы...
...
Рейтинг: 0 / 0
19.08.2010, 10:00
    #36799369
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько попыток конекта к базе....., затем эксепшн
да, это уже понял
...
Рейтинг: 0 / 0
19.08.2010, 10:26
    #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
19.08.2010, 12:12
    #36799781
Sputnick
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько попыток конекта к базе....., затем эксепшн
все, разобрался, всем спасиб
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Несколько попыток конекта к базе....., затем эксепшн / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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