可能在同一个范围内 有创建过另一个名为reader 的对象
检查一下161行上面的代码

解决方案 »

  1.   

    典型的sqldatareader用完没显示关闭造成的
      

  2.   

    public void CreateMySqlDataReader(string mySelectQuery,string myConnectionString) 
    {
       SqlConnection myConnection = new SqlConnection(myConnectionString);
       SqlCommand myCommand = new SqlCommand(mySelectQuery, myConnection);
       myConnection.Open();
       SqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
       while(myReader.Read()) 
       {
          Console.WriteLine(myReader.GetString(0));
       }
       myReader.Close();
       //Implicitly closes the connection because CommandBehavior.CloseConnection was specified.
    }
      

  3.   

    异常信息已说的很明确了,要打开新的DataReader需要把原来的那个关闭。
      

  4.   

    你的 数据访问层有问题,写得不好,建议你用 SqlHelper.cs
    你在用你当然出错的个 SQldatareader 之前看是不是在这个之前有的地方也用了
    sqldataread 打开了数据库链接.选关闭它或关闭之前的个 sqldatareader.建议你还是用 sqlhelper.cs 否则你还会遇到更多这样的问题
      

  5.   

    谢谢大家:我已经解决了 呵呵....
      这样写就没问题了
     
            using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionStringLocalTransaction))
            {
                strSQL.Append(SQL_INSERT_BBSINFO);
                conn.Open();
                cmd.Connection = conn;
                cmd.CommandType = CommandType.Text;
                cmd.CommandText = strSQL.ToString();
                int val = cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();//记住 ,一定要江参数列表进行清空        }