检查数据库是否可用?

时间:2009-05-28 13:29:33

标签: c# database

我的问题涉及在从数据库读取之前检查我是否有有效的数据库连接。如果数据库关闭,我想写一个xml文件。我在运行时有数据库的位置(如果它已经运行),所以如果数据库工作,我可以创建一个新的sqlConnection。

4 个答案:

答案 0 :(得分:2)

我会使用类似的东西:

using(SqlConnection conn = new SqlConnection(c)){         conn.Open();     }

如果无效,它将抛出异常。您可以在异常中写入xml。

答案 1 :(得分:2)

一种简单的方法是执行一个简单的查询并查看是否发生错误:

对于Oracle:

SELECT * FROM DUAL

对于SQL Server

SELECT 1

基本上只是某种相对“免费”的查询,可以让您知道数据库已启动并正在运行并响应请求,并且您的连接尚未超时。

答案 2 :(得分:2)

使用典型的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();
}

答案 3 :(得分:0)

如果没有实际打开连接,您无法确定数据库是否正常运行。但是,当你使用它时,连接可能会被丢弃,所以应该考虑到这一点。