在写数据库操作类时候的一个疑惑
 public static DataSet GetDataSet ( string commandText , CommandType commandType , params OracleParameter [ ] parameters )
    {
        using ( OracleConnection connection = new OracleConnection ( ConnectionString ) )
        {
            using ( OracleCommand selectCommand = preparCommand ( commandText , commandType , connection , parameters ) )
            {
              try{
                OracleDataAdapter o = new OracleDataAdapter ( selectCommand );
                DataSet ds = new DataSet ( );
                o.Fill ( ds );
                return ds;
              }catch(OracleException e){
                 throw new Exception(e.Message);
              }
            }
        }
    }
资料中看到:
直接把异常直接抛到最顶层然后再做处理。。高手们有更高的建议么?谢谢~关于连接池是不是只需要在连接字符串上的属性进行设置?
看有的资料中写的数据库操作类继承了IDisposable类~ 是用来主动操作CG 这样做对连接池有影响么?

解决方案 »

  1.   

    你这样写很好啊。看看SQLHELPER。最好是实例化一个datatable这样便于操作。你上面的方法可以返回一个dt。dataset太大了。操作一个表要比操作多个表的集合要方便的多。给你改一下public DataTable GetDataSet ( string commandText , CommandType commandType , params OracleParameter [ ] parameters )
        {
            using ( OracleConnection connection = new OracleConnection ( ConnectionString ) )
            {
                using ( OracleCommand selectCommand = preparCommand ( commandText , commandType , connection , parameters ) )
                {
                  try{
                    OracleDataAdapter o = new OracleDataAdapter ( selectCommand );
                    DataSet ds = new DataSet ( );
                    o.Fill ( ds );
                    DataTable dt = ds.Table[0].DefultView;
                    return dt;
                  }catch(OracleException e){
                     throw new Exception(e.Message);
                  }
                }
            }
        }
      

  2.   

    用using 会自动执行Dispose方法
      

  3.   

    关于连接池我觉得可以只需要在连接字符串上的属性进行设置,,net也有自动回收垃圾的功能,异常你也可以到最后在处理
      

  4.   

    jiang_jiajia10 能简单说下连接池原理么?
      

  5.   

    参考
    http://www.cnblogs.com/lds85930/articles/688569.html
    http://www.cnblogs.com/rockerychn/archive/2005/08/20/219063.html
    http://www.cnblogs.com/Bobby/archive/2007/04/18/718171.html
      

  6.   

    继承了IDisposable类,据说是没有必要的。异常建议往上抛,最后处理。
      

  7.   


    (声明俺入门中)个人建议“直接把异常直接抛到最顶层然后再做处理。”  这样。
    至于连接池就是web.config中的连接写符串:<add key="connstr" value="server=stan;uid=sa;pwd=;database=RaschDbms;Max Pool Size = 512"/>
    中的 Max Pool 一直这样就行了
    实现了IDisposable接口是为了可以释放 比如说你的方法中的 connection 他会有Dispose()方法。
    因为你用了using 所以在结尾的时间,会自动释放
      

  8.   

    谢谢拉 接贴 另开 继续讨论 hoho