这是怎么回事? 大家有什么方法解决!!

ilove80 2004-11-29 01:19:10
string strConn ="server=UU;Initial Catalog=CESHI;integrated security=yes;User ID=sa;Password=198066";
SqlConnection MyConn=new SqlConnection(strConn);
MyConn.Open();
string insertStr = "INSERT INTO aaaaaa (name,school,money) Values('"+strSrcMobile+"', '"+strFee+"','"+strMsg+"')";
SqlCommand insertCMD = new SqlCommand(insertStr, MyConn);
insertCMD.ExecuteNonQuery();
MyConn.Close();
我规定每几秒钟执行一次上面的程序,便会出现下面的问题

其他信息: 超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。

我不是每次都MyConn.Close()了吗?
怎么还出现上面的问题,请大家指教!!
...全文
184 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
nightChaos 2004-11-30
  • 打赏
  • 举报
回复
你用单步调试,看看在哪挂的,把挂的位置贴出来
samsung80 2004-11-30
  • 打赏
  • 举报
回复
顶!
tjp22 2004-11-30
  • 打赏
  • 举报
回复

给连接再加一个参数试下:

Connection Lifetime=

如果还不行,为什么不使用静态连接?这样就不用每次创建新的连接了。始终都是一个连接,但如果产生连接错误或调用事务比较麻烦,需要额外增加一些代码。
samsung80 2004-11-30
  • 打赏
  • 举报
回复
gbbword 2004-11-30
  • 打赏
  • 举报
回复
所有的insetCMD命令全部用一个共享的connection。
把连接超时的时间设短一点。
ilove80 2004-11-30
  • 打赏
  • 举报
回复
UP
xiaoslong 2004-11-29
  • 打赏
  • 举报
回复
帮你顶
friendsyu 2004-11-29
  • 打赏
  • 举报
回复
UP
ilove80 2004-11-29
  • 打赏
  • 举报
回复
string strConn ="server=UU;Initial Catalog=CESHI;integrated security=yes;User ID=sa;Password=198066";
using(SqlConnection Conn=new SqlConnection(strConn))
{
Conn.Open();
string sql="select top 1 * from game2003 where Addr=8446588 and game=0 ";
using(SqlCommand Cmd= new SqlCommand(sql,Conn))
{
{ SqlDataReader dr=Cmd.ExecuteReader();
while(dr.Read())
{
string getcontent = dr["FUD"].ToString();
string recTmStr = getcontent;
string ID=dr["FOrgAddr"].ToString();
}

dr.Close();
}
Cmd.Dispose();
}
string updatestring="UPDATE game2003 set game=1 where FUD='"+recTmStr+"' and FOrgAddr='"+ID+"'";
using(SqlCommand cmd1=new SqlCommand(updatestring,Conn))
{
cmd1.ExecuteNonQuery();
}
Conn.Close();
Conn.Dispose();
}
请大家看看,这到底是怎么回事??出现下面的问题,程序哪里有错

超时时间已到。在从池中获取连接之前超时时间已过。出现这种情况可能是因为所有池连接都已被使用并已达到最大池大小。
ghj1981 2004-11-29
  • 打赏
  • 举报
回复
up
ilove80 2004-11-29
  • 打赏
  • 举报
回复
to morefish
顺序没有错呀!!
还是这个错误!!
CS0246:找不到类型或命名空间名称“insertCMD”(是否缺少using指令或程序集引用)
morefish 2004-11-29
  • 打赏
  • 举报
回复
insertCMD.ExecuteNonQuery();
insertCMD.Dispose();
MyConn.Close();
MyConn.Dispose();
这个是执行的顺序。你是不是把insertCMD写错了啊,再试试。
fwind 2004-11-29
  • 打赏
  • 举报
回复
string strConn ="server=UU;Initial Catalog=CESHI;integrated security=yes;User ID=sa;Password=198066";
using( SqlConnection MyConn=new SqlConnection(strConn) )
{
MyConn.Open();
string insertStr = "INSERT INTO aaaaaa (name,school,money) Values('"+strSrcMobile+"', '"+strFee+"','"+strMsg+"')";
using( SqlCommand insertCMD = new SqlCommand(insertStr, MyConn) )
{
insertCMD.ExecuteNonQuery();
}
MyConn.Close();
}

如果有问题,请贴出你的线程调用来看看
docama 2004-11-29
  • 打赏
  • 举报
回复
是不是因为insertCMD没有关闭的原因?
ilove80 2004-11-29
  • 打赏
  • 举报
回复
up!
smallfish2001 2004-11-29
  • 打赏
  • 举报
回复
UP不明白
ilove80 2004-11-29
  • 打赏
  • 举报
回复
to morefish
用insertCMD.Dispose(); 会出现以下错误:

CS0246:找不到类型或命名空间名称“insertCMD”(是否缺少using指令或程序集引用)
morefish 2004-11-29
  • 打赏
  • 举报
回复
insertCMD.Dispose();
MyConn.Close();
MyConn.Dispose();
ilove80 2004-11-29
  • 打赏
  • 举报
回复
to wangxiaohu :我用的是多线程,每个线程调用上面的一次操作!!
把连接数设到500个,经过500个线程就完完了!!

to morefish :insertCMD对象怎么销毁???
huqiyang 2004-11-29
  • 打赏
  • 举报
回复
UP
加载更多回复(3)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧