什么情况下可以调用OracleConnection.Open()如果连接已经打开?

IOW,有测试这一点,一拉的标准方法:

if (! con.Open()) con.Open();

更新:我想我没有提到的,这些都是我使用Oracle的ODP组件。 该组件的OracleConnection没有ConnectionState属性。

--------------解决方案-------------

您需要将代码分成不同的层次,以避免这种情况。 连接应该只在main方法打开(在API中 - 应用程序没有main方法) - 然后传递到协调,只是消耗,没有管理的连接(开,关,交易操作等的连接(私)方法)。 这样可以使你的代码干净,您的交易/连接的安全。

使用Connection.State属性来检查连接是否已经打开

if(con.State == ConnectionState.Closed){
con.Open();
}

if(Con.State != ConnectionState.Open)
con.Open();

如果你想开闭只连接可以使用

if(Con.State == ConnectionState.Close)
con.Open();

ConnectionState:http://msdn.microsoft.com/en-us/library/system.data.connectionstate.aspx

分类:C# 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.803 (s). 10 q(s)