问题基础:
我在数据层访问的基类中定义一个静态变量conn , 类型为SqlConnection:
private static SqlConnection conn ;然后声明一个属性:
public static SqlConnection Conn
{
    get
    {
        if ( conn == null )
        {
            conn = new SqlConnection( strConn ) ;
        }
        
        return conn ;
    }
}问题描述:
我这样管理数据库结对象合理吗?会不会有并发访问的冲突?
环境:
SDK 1.1
IIS 5.0

解决方案 »

  1.   

    TO : JasonHeung(拥有一切也不过就这样笑着哭)
    这样做会有什么后果呢?再打比方,我多建立几个静态的conn1 ,conn2 ,conn3
    判断,如果conn的连接已经被打开,即正在被使用时,我启用conn1
    依此类推,这样是否可行呢?
      

  2.   

    你说的工作还是让connection pool帮你做吧……
      

  3.   

    还有,Connection对象不能并发使用。
      

  4.   

    <!--错误信息:已有打开的与此连接相关联的DataReader,必须首先将它关闭。错误对象:System.Data
    错误方法Void ValidateCommand(System.String, Boolean)
    错误实例:错误连接:堆表示形式:  
    at System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean executing)
     
    at System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream)
       
    at System.Data.SqlClient.SqlCommand.ExecuteReader()
       
    at MemberWeb.Dal.SqlHelper.ExecuteReader(SqlConnection connection, SqlTransaction transaction, CommandType commandType, String commandText, SqlParameter[] commandParameters,SqlConnectionOwnership connectionOwnership)
       
    at MemberWeb.Dal.SqlHelper.ExecuteReader(SqlConnection connection, CommandType commandType, String commandText, SqlParameter[] commandParameters)
       
    at MemberWeb.Dal.IDns.GetDnsInfo(String Url)--->
    这段异常代码是否跟本帖有问题相关呢?
    一次出错中记录下来的