SqlConnection myConnection = new SqlConnection(myConnectionString);
   SqlCommand myCommand = new SqlCommand(mySelectQuery, myConnection);
   myCommand.Connection.Open();
   SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
   while(myReader.Read()) 
   {
      Console.WriteLine(myReader.GetString(0));
   }
   myReader.Close();
   myConnection.Close();以上程序运行时总提示“SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);”这一行有错!未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中其他信息:连接已经打开 (state=Open)。已保证mySelectQuery, myConnection两项是正确的。大家帮忙看看问题何在?

解决方案 »

  1.   

    另外使用myCommand.ExecuteNonQuery()等方法是也有错误:未处理的“System.InvalidOperationException”类型的异常出现在 system.data.dll 中其他信息:连接已经打开 (state=Open)。而且数据库并没有被操作。恳请解答。
      

  2.   

    先判断下状态,如果是关闭再打开myCommand.Connection.Open();
    =============>if (myConnection.State.ToString()=="Closed")
        myConnection.Open();
      

  3.   

    你的连接已经打开了,必须先把它关闭才能用sqldatareader取数据
      

  4.   

    不用
    CommandBehavior.CloseConnection
    这样
    using(SqlDataReader myReader = myCommand.ExecuteReader()) {

    while(myReader.Read()) 
                              {
                             Console.WriteLine(myReader.GetString(0));
                                   }

    }
    conn.Close();
      

  5.   

    conn如你的代码一样,先OPEN再用上面的