Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2010, 09:46   #1
sputnick
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 12
По умолчанию Несколько попыток конекта к базе....., затем эксепшн

Всем привет!!!
вот что у меня получилось:

основная форма:
Код:
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 - клас в котором методы работы с базой

собственно кусок класса:
Код:
 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;
        }
System.Threading.Thread.Sleep(10000 ); - нужно для того чтобы попытки конекта были с промежутком 10 сек.

Вроде все правильно, но эксепшн не пишется, и прога продолжает выполнять код следующий за циклом (

Последний раз редактировалось Stilet; 19.08.2010 в 10:03.
sputnick вне форума Ответить с цитированием
Старый 19.08.2010, 10:00   #2
sputnick
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 12
По умолчанию

if (i == 3 - 1)
sputnick вне форума Ответить с цитированием
Старый 19.08.2010, 10:06   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
                    Application.Exit();
                }
         success = false;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.08.2010, 10:26   #4
sputnick
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 12
По умолчанию

не, не завершается прога, даже если так:

Код:
  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);
            }
sputnick вне форума Ответить с цитированием
Старый 19.08.2010, 10:43   #5
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Вместо
Код:
Application.Exit();
попробуй вставить
Код:
throw(new Exception("Три попытки были безуспешны"));
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума Ответить с цитированием
Старый 19.08.2010, 12:29   #6
sputnick
Пользователь
 
Регистрация: 09.05.2010
Сообщений: 12
По умолчанию

все, разобрался, спасиб, просто у меня на выход тоже инсерт в базу забит, это и сбило с толку))
sputnick вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
занести инфу в файл , затем считать её при новом сеансе frmSm Общие вопросы C/C++ 1 04.06.2010 15:33
массивы. вначале нули, затем положительные, в конце отрицательные. Сумерки Фриланс 5 17.02.2010 11:21
DBLookUpCombobox эксепшн на Insertе с KeyValue назначенной вручную joker Компоненты Delphi 2 15.12.2009 07:23
Проблема конекта к базе на хостинге. sniffer PHP 2 14.07.2009 17:04
несколько записей в базе 4321 БД в Delphi 1 13.11.2008 20:30