class OracleConnectPool
   {
    public static int NumOfConn = 10;
    public static string conn_str="Data Source=eerp;user=LC_USER;password=LC_USER;";
    public static OracleConnection[] Conns= new OracleConnection[NumOfConn];
    public static DateTime[] OpenTimes = new DateTime[NumOfConn];
    public static OracleConnection GetConnect()
    {
     try
     {
      int OldestConn = 0;
      for(int i=0;i< NumOfConn ;i++)
      {
       if(Conns[i] == null)
       {
        Conns[i] = new OracleConnection(conn_str);
        Conns[i].Open();
        OpenTimes[i] = DateTime.Now;
        return Conns[i];
       }
       else if(Conns[i].State == System.Data.ConnectionState.Closed)
       {
        Conns[i].Open();
        OpenTimes[i] = DateTime.Now;
        return Conns[i];
       }
       else if(Conns[i].State == System.Data.ConnectionState.Open)
       {
        if(OpenTimes[i] < OpenTimes[OldestConn])
         OldestConn = i;
       }
      }
       
      OpenTimes[OldestConn] = DateTime.Now;
      return Conns[OldestConn];
     }
     catch
     {
      Exception myEX=new Exception("数据库连接失败,请重试!");
      throw myEX;
     }
    }
} 

 

黑色头发  http://heisetoufa.iteye.com

更多推荐