现在使用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()的方法就出现上面那个问题了;
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()的方法就出现上面那个问题了;
解决方案 »
- 关于System.Collections中PerformanceCounterCategory的使用
- [求助]SizeType.Percent 与 SizeType.AutoSize 实际效果的区别
- 输入字母串转换成相对应的图片
- 程序设置简化???
- 请教一个继承组件时会会复加载属性的问题。
- 关于在C#中用datediff 函数(SQL2000中)
- WinForm中DataGrid列合计问题?怎样才能实现这样的效果,解决护马上结帖
- 着条正确的sql语句怎么写?
- c#开发操作两个数据库的问题。
- .net WEB程序 跨服务器同步数据?
- 在线请教,winform的combobox在dropdownlist下的问题
- 用过webchart的请指点迷经
{
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());
}
}
这是我执行的类
{
DUA("INSERT INTO..................")//这里有一段添加数据的语句
}
运行循环时,先打开,在处理插入操作。最后在for外关闭