现在使用C# 编辑程序 进行添加数据就会出现这个错误,数据库是ORACLE的;问题是超出了最大进程数;但是我不想改数据库的进程数;所以想从某些方法改好;请各位大侠帮忙;下面的是我添加数据时调用的方法;
private void DUA(string strSQL)//Commit Sql 
{
 OracleTransaction myTrans = DBConnection.GetConnection().BeginTransaction(IsolationLevel.ReadCommitted);          
 OracleCommand cmd = DBCommand.BuliderCmd(strSQL);
           try
           {
               cmd.ExecuteNonQuery();
               cmd.Transaction = myTrans;
               myTrans.Commit();
           }
           catch (Exception ex)
           {
               MessageBox.Show(ex.Message, "Information");
               myTrans.Rollback();
           }
           finally
           {
               myTrans.Dispose();
               CloseConnection.CloseCon(cmd);
           }
}for(int i=1;i<=100;i++)
{
 DUA("INSERT INTO..................")//这里有一段添加数据的语句
}
我之前听别人说 数据库可以连接一次  不要 重复连接;但是不知道怎么做;也不清楚怎么写,但是我必须每次调用那个方法,而那个方法每次都会连接数据库;不这样做还能怎样做啊?而且我每次操作都有关闭连接;为什么还会出现这个问题呢?
求大虾帮忙,我是新手,比较难懂,  我都看了好多遍了;在之前还出现了一个错误 Timeout expired.  The timeout period elapsed prior to obtaining a connection from the pool.  This may have occurred because all pooled connections were in use and max pool size was reached.然后我加了一个OracleConnection.ClearAllPools()的方法就出现上面那个问题了;

解决方案 »

  1.   

    忘 了些错误了。。ORA-00020: maximum number of processes (150) exceeded现在出现的错误 是上面那个
      

  2.   

     public static class DBConnection
     {
                private static String strCon = "";            private static OracleConnection cn;            public static OracleConnection GetConnection()
                {
                    if (strCon == "" || strCon == null)
                    {
                        strCon = System.Configuration.ConfigurationManager.AppSettings["Connection"].ToString();
                    }
                    cn = new OracleConnection(strCon);
                    if (cn.State == ConnectionState.Closed)
                    {
                        cn.Open();
                    }
                    return cn;
                }
    }
    这是我连接数据库的类;public static class CloseConnection
        {
            public static void CloseCon(OracleCommand cmd)
            {
                cmd.Dispose();
                cmd.Connection.Dispose();
                cmd.Connection.Close();
            }
        }
    这是我关闭数据库的类 public static class DBCommand
        {
            public static OracleCommand BuliderCmd(string strcmd)
            {
                return new OracleCommand(strcmd, DBConnection.GetConnection());
            }
           }
    这是我执行的类
      

  3.   

    for(int i=1;i<=100;i++)
    {
     DUA("INSERT INTO..................")//这里有一段添加数据的语句
    }

     运行循环时,先打开,在处理插入操作。最后在for外关闭