我的问题涉及在从数据库读取之前检查我是否有有效的数据库连接。如果数据库关闭,我想写一个xml文件。我在运行时有数据库的位置(如果它已经运行),所以如果数据库工作,我可以创建一个新的sqlConnection。
答案 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)
如果没有实际打开连接,您无法确定数据库是否正常运行。但是,当你使用它时,连接可能会被丢弃,所以应该考虑到这一点。