在C#控制台应用程序中测试数据库连接

时间:2012-04-13 12:45:54

标签: c# sql-server database

我有一个C#控制台应用程序,它本质上是一个很长的批处理过程,可以在许多不同的数据库中每晚处理数据。在此类程序的开头测试基本数据库连接的正确或首选方法是什么?我遇到了一个问题,即我的一个连接有一个过期的数据库密码,这是由异常处理捕获但我想在一开始就测试基本连接。

简单的SELECT查询是否足够或是否有更有效的方法为众多数据库执行此操作?

4 个答案:

答案 0 :(得分:3)

恕我直言,最简单的方法是尝试连接数据库,如果你有失败,你就放弃了 当你正在进行夜间批处理时,立即了解原因并解决它并不重要 像这样的东西

using(SqlConnection conn = new SqlConnection(connectionString))
{
    try
    {
        conn.Open();
        // Do what you please here        
    }
    catch (Exception ex)
    {
        // Write error to file
        File.Append(..., 
            DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss") + " " + 
            ex.Message);
    }
    finally 
    { 
        conn.Close();
    } 
}

第二天早上你可以检查文件是否有错误......

答案 1 :(得分:0)

'Connection.open` 

是确定是否可以连接到db的简单方法。

using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();
}

如果您收到编号为18487或18488的SqlException,则表示密码已更改。

Connection.changePassword

答案 2 :(得分:0)

您不需要运行任何查询。 如果您使用SqlConnection传递连接字符串,您可以尝试Open()连接,如果无法连接,您将获得异常 类似的东西:

try
{
    var cnn = new SqlConnection(connectionString);
    cnn.Open();
}
catch
{
   // connection failed, do something
}

答案 3 :(得分:0)

打开(然后关闭)连接应该足以测试密码。但是,如果db-user有权访问特定的表,则不会告诉您。

相关问题