超时时间已到,但是尚未从池中获取连接
大家帮我解决一下
错误提示为“超时时间已到,但是尚未从池中获取连接”
代码如下:
//创建DB连接
Database db = DatabaseFactory.CreateDatabase( "EHotelConnectionString ");
//调用存储过程
DbCommand dbcommandBr = db.GetStoredProcCommand( "Proc_InsertBreakfast ");
db.AddInParameter(dbcommandBr, "@ID ", DbType.Int64, objbreak.Key);
db.AddInParameter(dbcommandBr, "@EBreakfastTypeId ", DbType.Int32, objbreak.EBreakfastTypeId);
db.AddInParameter(dbcommandBr, "@Price ", DbType.Int64, objbreak.Price);
db.AddInParameter(dbcommandBr, "@IRoomTypePriceID ", DbType.Int64, objbreak.IRoomTypePriceID);
db.AddInParameter(dbcommandBr, "@RoomTypeID ", DbType.Int64, objbreak.RoomTypeID);
db.AddInParameter(dbcommandBr, "@HotelID ", DbType.Int64, objbreak.HotelID);
//执行
db.ExecuteNonQuery(dbcommandBr);
当程序执行一段时间后,就报错了。在百度上搜索一下说是DB连接没有关闭,但我用的是微软的企业库去操作DB的,操作完以后好象它会自动关闭其连接的。不知道是怎么回事了?
------解决方案--------------------1.如果你用DataReader直接绑定到控件的话..那样连接是无法被马上释放的...
2.自己手动释放连接
------解决方案--------------------估计你有DataReader操作。在里面加个参加CommandBehavior.Close 具体单词记不到。我以前也碰到这问题。加上就好了。