Проверка доступности базы данных? - PullRequest
0 голосов
/ 28 мая 2009

Моя проблема заключается в проверке правильности подключения к базе данных перед чтением из базы данных. Если база данных не работает, я хотел бы вместо этого записать в XML-файл. У меня есть местоположение базы данных (если она работает) во время выполнения, поэтому, если база данных работала, я могу создать новую sqlConnection к ней.

Ответы [ 4 ]

2 голосов
/ 28 мая 2009

Используйте типичную структуру try ... catch ... finally и, основываясь на конкретном типе исключения и сообщении, решите, хотите ли вы записать в xml или нет.

try
{
SqlConnection connection = new SqlConnection(DB("Your DB Name"));
connection.Open();
}
catch (Exception ex)
{
// check the exception message here, if it's telling you that the db is not available. then 
//write to xml file.
    WriteToXml();   
}
finally
{
  connection.Close();
}
2 голосов
/ 28 мая 2009

Я бы просто использовал что-то вроде:

с использованием (SqlConnection conn = new SqlConnection (c)) { conn.Open (); }

Будет выброшено исключение, если оно недействительно. Вы можете написать в XML в исключении.

2 голосов
/ 28 мая 2009

Простой способ - выполнить простой запрос и посмотреть, произошла ли ошибка:

Для Oracle:

SELECT * FROM DUAL

Для SQL Server

SELECT 1

По сути, это просто какой-то относительно "бесплатный" запрос, который сообщит вам, что база данных работает и отвечает на запросы, а время вашего соединения не истекло.

0 голосов
/ 28 мая 2009

Вы не можете точно сказать, запущена ли БД, фактически не открывая соединение с ней. Но тем не менее, соединение может быть разорвано, пока вы работаете с ним, так что это следует учитывать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...