我看了Petshop例子中sqlhelper.cs的代码了。但是我发现了一个严重的问题,他为什么没有关闭数据库接呢!
在sqlhelper里面,他只有在创建sqlcommand对象的时候打开了一次连接,然后在出错后,有一次半闭操作。
他在创建sqlcommand对象前都有判断sqlconnection对象是否是处于打开状态,如果不是打开状态就打开。
是不是这样不每次都打开sqlconnection对象会提高效率呢?
是不是我每次和数据据交互的时候打开sqlconnection对象并关闭对象这样会慢一些呢?
求解!分不够在加

解决方案 »

  1.   

    sqlhelper中创建的数据库连接是自动关闭的。
    SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); 
    CommandBehavior.CloseConnection的作用就是在关闭rdr对像时自动关闭数据库连接。
      

  2.   

    如果使用SqlDataAdapter的话,它会自动打开和关闭,如果使用SqlReader它必须显示打开并关闭,
    如果楼上的觉得没有效率的话,可以配置连接池或自己写一个对象池来提供效率