如果在程序中,大量使用SqlDataReader对象的话,会导致连接池耗尽的情况发生。仍然,有些时候,我们又不得不使用多个SqlDataReader。
因此,我们要解决的办法是,即要使用多个SqlDataReader,同时又不能让连接池耗尽,所以,我们得解决连接及时的关闭问题。
下面为大家提供范例,如何使用这两者对象。
using (SqlConnection Conn = new SqlConnection()) //第一个连接
{
Conn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CoachExamOnlineStr"].ToString();
Conn.Open();
using (SqlCommand Cmd = Conn.CreateCommand())
{
Cmd.CommandText = MySqlStr;
using (SqlDataReader MySqlReader = Cmd.ExecuteReader()) //
{
while (MySqlReader.Read())
{
using (SqlConnection Conn1 = new SqlConnection()) //第二个连接对象Conn1,因为如果沿用上面的Conn会导致SqlReader未关闭的错误提示
{
Conn1.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["CoachExamOnlineStr"].ToString();
Conn1.Open();
SqlCommand Cmd2 = Conn1.CreateCommand();
Cmd2.CommandText = "select ID,ExamName from GetToExamBase where ID=1" ;
(CheckAddResult(Cmd2)) //调用函数,传递的参数是SqlCommand对象
}
}
}
}
}