проверить подключение из приложения C # к базе данных Oracle 10g - PullRequest
0 голосов
/ 19 сентября 2011

Как проверить соединение из приложения C # с базой данных oracle 10g?

Например, у меня есть сервер Oracle на машине с IP 10.50.65.2. Я поддерживаю IP, порт в app.config.

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

Если не возможно создать соединение с БД, которое мне нужно показать только простое сообщение, измените данные соединения с БД в app.config.

Ответы [ 4 ]

5 голосов
/ 19 сентября 2011

Почему бы вам просто не попытаться создать соединение и перехватить исключение в случае сбоя?

Возможно, что-то вроде этого:

public bool CheckConnection()
{
    string connectionString = ""; //Get from configuraiton.
    using(var conn = new OracleConnection(connectionString))
    {
        try
        {
            conn.Open();
            return true;
        }
        catch
        {
            return false;
        }
    }
}
1 голос
/ 23 января 2017
if(conn.State == ConnectionState.Open)
{
    conn.Close();
}

Это сработало для меня в Oracle 11g

0 голосов
/ 19 сентября 2011

Соединение оракула имеет .Open

, поэтому вы должны сделать что-то вроде этого

 if (conn.State  == OracleConnection.Open)
    {  
           //connection is already open
    }
    else 
    {
        //connection is in another state and can be used
    }

Имейте в виду, я предполагаю, что вы знаете свое состояние, так как вы используете статический ip итакое определено в вашем app.config.В противном случае я бы сказал, что Ответ Криса сработает, если у вас нет единственного пакета, удерживающего ваше соединение с БД.

0 голосов
/ 19 сентября 2011

попробовать что-нибудь подобное, может быть?

OracleConnection conn = new OracleConnction(ConfigurationManager.ConnectionStrings["connection"].ConnectionString);
try{
    conn.Open();
catch(Exception){
    System.Console.Out.WriteLine("Please modify db connection data in app.config.")
}
...