问题
How can I check connection from C# app to oracle 10g database?
For example I have Oracle server on machine with IP 10.50.65.2. I maintain IP, Port in app.config.
I move app to another pc connected to another network. I need check if it is possible create correct connection with database server.
If it is not possible create db connection I need show only simple message please modify db connection data in app.config.
回答1:
Why don't you just try to create the connection and catch the exception if it fails?
Perhaps something like this:
public bool CheckConnection()
{
    string connectionString = ""; //Get from configuraiton.
    using(var conn = new OracleConnection(connectionString))
    {
        try
        {
            conn.Open();
            return true;
        }
        catch
        {
            return false;
        }
    }
}
    回答2:
if(conn.State == ConnectionState.Open)
{
    conn.Close();
}
This worked for me on Oracle 11g
回答3:
try something like this maybe?
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.")
}
    回答4:
The oracle Connection has a .Open
so you would do something like this
 if (conn.State  == OracleConnection.Open)
    {  
           //connection is already open
    }
    else 
    {
        //connection is in another state and can be used
    }
Mind you I am assuming that you know your state since you are using a static ip and such defined in your app.config. Otherwise I would say Chris's Answer will work if you do not have a singleton holding your connection to the DB.
来源:https://stackoverflow.com/questions/7475233/check-connection-from-c-sharp-app-to-oracle-10g-database