首页 新闻 搜索 专区 学院

两个类之间的数据库连接传递

0
悬赏园豆:10 [已解决问题] 解决于 2018-08-29 17:00
 1 public class 数据连接类:idispose
 2 {
 3   void dispose(){断开连接}
 4 }
 5 
 6 public class A
 7 {
 8   pulic 数据连接类 连接instance{get;set;} 
 9   pulic A(数据连接类 _连接instance==null)
10   {
11     if(_连接instance != null)
12     {
13       连接instance = _连接instance
14     }{ /// 创建新连接}
15   }
16      public Select()
17      {
18             using(连接instance){ ///做查询}
19      }    
20 }   
21 
22 public class B
23 {
24   pulic 数据连接类 连接instance{get;set;} 
25   pulic B(数据连接类 _连接instance==null)
26   {
27     if(_连接instance != null)
28     {
29       连接instance = _连接instance
30     }else{ /// 创建新连接}
31   }
32      public Select()
33      {
34             using(连接instance){ ///做查询}
35      }    
36 }  
37 ---------测试代码-------------- 38 var a = new A{}; 39 var b = new B(a.连接instance); 40 b.Select(); -----正常 41 a.Select(); ----由于b示例已经using将连接释放,此处报错

各位达人,针对以上问题,我改怎样保证A和B类中相互传递数据连接,同时保证操作完成后自动释放数据连接?谢谢各位能指点啦

c#
HNLY的主页 HNLY | 初学一级 | 园豆:101
提问于:2018-08-29 14:25
< >
分享
最佳答案
0

把创建和释放连接放到A, B之外,A,B 里不要释放连接。

using(连接instance = 创建连接实例)
{
  var a = new A{连接instance};
  var b = new B(连接instance);
  b.Select();
  a.Select();
}

如果你还想在A,B里释放连接,可以让A,B类继承 IDisposable,在Dispose()方法里释放连接(而不是在每次A,B的查询里释放连接)。

收获园豆:10
大豆男生 | 小虾三级 |园豆:611 | 2018-08-29 14:41

3ks

HNLY | 园豆:101 (初学一级) | 2018-08-29 17:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册