string StrSQL = "SELECT * from test where name='zhansan'"; 
OleDbCommand selCmd=new OleDbCommand(StrSQL,myConn); 
selCmd.Connection.Open(); 
OleDbDataReader Dr; 
Dr=selCmd.ExecuteReader(); 
if(Dr.Read()) 

if(!this.IsPostBack ) 

string mySql="SELECT school_name from school where id='"+Dr["id"].toString()+"'"; 
OleDbCommand myCmd=new OleDbCommand(mySql,myConn); 
myCmd.Connection.Open(); 
OleDbDataReader Dr1; 
Dr1=myCmd.ExecuteReader(); 
while(Dr.Read()) 

schoollist.Items.Add(Dr1.GetString(0).Trim()); 

Dr1.Close(); 
myCmd.Connection.Close(); 

Dr.Close(); 
selCmd.Connection.Close(); 上面这个程序报Connection已经打开, 
是不是selCmd.Connection.Close();和myCmd.Connection.Open();有错,该如何解决?

解决方案 »

  1.   

    试试这样能不能运行:string StrSQL = "SELECT * from test where name='zhansan'"; 
    OleDbCommand selCmd=new OleDbCommand(StrSQL,myConn); 
    selCmd.Connection.Open(); 
    //OleDbDataReader Dr; 
    //Dr=selCmd.ExecuteReader(); 
    OleDbDataAdapter da=new OleDbDataAdapter(selCmd,myConn);
    DataTable dt=new DataTable();
    da.Fill(dt);
    //if(Dr.Read())
    if(dt.Rows.Count>0) 

    if(!this.IsPostBack ) 

    //string mySql="SELECT school_name from school where id='"+Dr["id"].toString()+"'"; 
    string mySql="SELECT school_name from school where id='"+Dt[0]["id"].toString()+"'"; 
    OleDbCommand myCmd=new OleDbCommand(mySql,myConn); 
    myCmd.Connection.Open(); 
    OleDbDataReader Dr1; 
    Dr1=myCmd.ExecuteReader(); 
    //while(Dr.Read()) 
    int i;
    for(i=0;i<dt.Rows.Count;i++)

    schoollist.Items.Add(Dr1.GetString(0).Trim()); 

    Dr1.Close(); 
    myCmd.Connection.Close(); 

    //Dr.Close(); 
    selCmd.Connection.Close(); 
      

  2.   

    另外,把myCmd.Connection.Open(); 一句也注释掉。
      

  3.   

    执行完 Dr=selCmd.ExecuteReader(); 后将Connection关掉。
    我没实际运行只是这么想。
      

  4.   

    把myCmd.Connection.Open();注释掉
    换成myconn.Open();
    试试!