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; } } }