关于数据库连接池的问题。
//SQL连接串语句添加了 "Max Pool Size=2; Min Pool Size=1" 访问第二次的时候,连接池就满了???
//我明明 调用了 reader.Close();reader.Dispose();。
//数据库访问
public static DbDataReader ExecuteReader(CommandType commandType, string commandText, params DbParameter[] commandParameters)
{
if (ConnectionString == null || ConnectionString.Length == 0) throw new ArgumentNullException("ConnectionString");
DbConnection connection = null;
connection = Factory.CreateConnection();
connection.ConnectionString = ConnectionString;
return ExecuteReader(connection, (DbTransaction)null, commandType, commandText, commandParameters);
}
private static DbDataReader ExecuteReader(DbConnection connection, DbTransaction transaction, CommandType commandType, string commandText, DbParameter[] commandParameters)
{
connection.ConnectionString = ConnectionString;
connection.Open();
bool mustCloseConnection = false;
// 创建命令
DbCommand cmd = Factory.CreateCommand();
if (connection.State != ConnectionState.Open)
{
mustCloseConnection = true;
connection.Open();
}
else
{
mustCloseConnection = false;
}
command.Connection = connection;
command.CommandText = commandText;
command.CommandType = commandType;
DbDataReader dataReader;
dataReader = cmd.ExecuteReader();
cmd.Parameters.Clear();
return dataReader
}
//========================
IDataReader reader= ExecuteReader(....)
if (reader != null)
{
while (reader.Read())
{
list.Add(LoadToEntity(reader));
}
reader.Close();
reader.Dispose();
}
return list;
数据库连接池 数据库 --------------------编程问答-------------------- 在关闭数据库连接前确保关闭了所有用户定义的事务 --------------------编程问答-------------------- 引用 楼主 madaming 的回复:
ObjectQuery<T>.Include 方法include的实体怎样排序 具体实例: return this.ObjectContext.题库集.Include("背记题"); “题库集”与"背记题"是一对多关联,那么在include中德"题库集"怎样排序。
--------------------编程问答-------------------- 最好确保事务、链接对象放到using(){}小括号里面,达到释放链接的效果。 --------------------编程问答--------------------
没有使用到事务。
connection.close()使用datareader 无法使用 using(){}包裹起来的,
只有在读取完数据时 调用 reader.Close(); reader.Dispose();
当第二次准备 connection.open() 时查看connection状态,是已经close 的
补充:.NET技术 , ASP.NET