如何将我的编辑方法包装在using语句中?

时间:2013-10-06 01:31:15

标签: asp.net-mvc-3

如何在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);
    }

1 个答案:

答案 0 :(得分:0)

你需要在你的代码中找到打开datareader的地方,然后将它放在一个像这样的使用块中

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

我们无法从您的代码中看到它正在打开并且从未关闭过。尝试单步执行代码并查看。在这个例子中,我使用了SqlDataReader,你可以对任何datareader

以相同的方式使用using块