Connect();

string Select = @"SELECT item FROM Service";
SqlCommand sqlcmd=new SqlCommand(Select,objConnection); DropDownList1.DataSource = sqlcmd.ExecuteReader();
DropDownList1.DataTextField="item";
DropDownList1.DataValueField="item";
DropDownList1.DataBind();
sqlcmd.Dispose(); Select = @"SELECT loginname FROM AdministerInfo";
sqlcmd=new SqlCommand(Select,objConnection); DropDownList2.DataSource = sqlcmd.ExecuteReader();/!!!!!!!
DropDownList2.DataTextField="loginname";
DropDownList2.DataValueField="loginname";
DropDownList2.DataBind();
sqlcmd.Dispose(); Disconnect();============================================================
“/carclub”应用程序中的服务器错误。
--------------------------------------------------------------------------------已有打开的与此连接相关联的 DataReader,必须首先将它关闭。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidOperationException: 已有打开的与此连接相关联的 DataReader,必须首先将它关闭。源错误: 
行 52:  sqlcmd=new SqlCommand(Select,objConnection);
行 53: 
行 54:  DropDownList2.DataSource = sqlcmd.ExecuteReader();
行 55:  DropDownList2.DataTextField="loginname";
行 56:  DropDownList2.DataValueField="loginname";
 

解决方案 »

  1.   

    private void Connect()
    {
    if(objConnection==null)
    objConnection=new SqlConnection(GetCnnStr()); if(objConnection.State==ConnectionState.Closed)
    objConnection.Open();
    } private void Disconnect()
    {
    objConnection.Close();
    }
      

  2.   

    已有打开的与此连接相关联的 DataReader,由于这句代码引起的:
    DropDownList1.DataSource = sqlcmd.ExecuteReader();
    试试这样:
    OleDbDataReader rd = sqlcmd.ExecuteReader();
    DropDownList1.DataSource = rd;
    rd.Close();下面的一样
      

  3.   

    OleDbDataReader rd = sqlcmd.ExecuteReader();
    DropDownList1.DataSource = rd;
    rd.Close();