0

如何将编辑方法的一部分包装在 using 语句中?我试着做这样的事情:

  public ActionResult Edit(int id)
    {
        IEnumerable<Student> student;
        using( var stdnt=new Student)
        var std = stdnt
            .Include(s => s.Courses)

            .Include(s => s.Enrollments)
            .Where(s => s.StudentID == id)
            .Single();

        PopulateAssignedenrolledData(student, id);             
        PopulateCourseDropDownList(student.CourseID);

        return View(student);

     }

我正在尝试这种方法,因为我不断收到有关已打开 DataReader 的错误消息,因此我进行了研究,大多数答案建议将代码包装在 using 语句中或转换为 ToList()。我想知道如何将代码包装在 using 语句中。这是我需要帮助的编辑方法。

  public ActionResult Edit(int id)
    {

        Student std = db.Students
            .Include(s => s.Courses)

            .Include(s => s.Enrollments)
            .Where(s => s.StudentID == id)
            .Single();

        PopulateAssignedenrolledData(student, id);              
        PopulateCourseDropDownList(student.CourseID);

        return View(student);
    }
4

1 回答 1

0

您需要在代码中找到正在打开数据读取器的位置,并将其放入 using 块中,如下所示

   using (SqlDataReader dr = cmd.ExecuteReader())
   { 
        while (dr.Read()) 
        { 
           //read here 
        } 
   } 

我们无法从您的代码中看到它正在打开且从未关闭的位置。尝试单步执行代码并查看。在此示例中,我使用了 SqlDataReader,您可以对任何数据读取器以相同的方式使用 using 块

于 2013-10-06T01:36:59.857 回答