我使用C#
连接Firebird Database
我无法找到检查数据库ConnectionState
的位置
如果我在项目中创建新的fbConnection
,则可以通过fbConnection.ConnectionState
进行检查
但我已经与向导建立了这个连接,它已保存在App.config文件中
我尝试使用System.Configuration.ConfigurationManager
,但它没有ConnectionState
那么如何检查App.config文件中定义的连接状态。
答案 0 :(得分:0)
似乎你不明白这个东西(连接)是如何工作的或它是什么。 ConfigurationManager类只是帮助您检索连接字符串(注意单词字符串。它只是一个字符串而已。)
使用此字符串,您可以构建FBConnection的真实实例并尝试打开该连接。现在您可以检查ConnectionState。
所以
string connectionString = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;
using(FbConnection myConnection = new FbConnection(connectionString))
{
// At this point the myConnection instance is certainly closed so
// it is total useless to check the ConnectionState
myConnection.Open();
// At this point the myConnection instance is certainly opened,
// otherwise you get an exception and your code cannot contine,
// so also here it is useless to check the ConnectionState
// however...
if(myConnection.ConnectionState == ConnectionState.Open)
{
.... do your stuff with the connection.....
}
}
要使此代码正常工作,您需要在App.Config中找到相应的部分,用于存储以符号名称连接到数据库所需的详细信息" MyConnection"
<connectionStrings>
<add name="MyConnection" connectionString="Data Source=localhost;
Database=YourDatabaseFile.fdb;
User=YourUserName;
Password=????whatever???;
Pooling=True" />
</connectionStrings>
所以我真的不需要检查连接的连接状态。如果此属性是您希望保留全局连接实例的唯一可能用途,则在尝试打开或关闭此全局实例之前,需要在代码的各个部分中检查ConnectionState。这种情况不是处理一次性对象的最佳方式,例如应该在尽可能短的时间内打开的连接,并且立即销毁(处置)并从使用块退出处理连接。
答案 1 :(得分:0)