Asp.net mvc 4 已存在与此命令关联的打开的DataReader,必须先关闭该命令(ASP.NET MVC4)

Asp.net mvc 4 已存在与此命令关联的打开的DataReader,必须先关闭该命令(ASP.NET MVC4),asp.net-mvc-4,Asp.net Mvc 4,我有一些循环代码: foreach (var report in reports) { var Current_Project = db.Projects.Where(c_p => c_p.project_name == report.pcode).FirstOrDefault(); } 当我运行它时,它会显示错误消息: 已存在与此命令关联的打开的DataReader,必须先关闭该命令 即使我把 var Current_Project = db.Projects.FirstOrD

我有一些循环代码:

foreach (var report in reports)
{
    var Current_Project = db.Projects.Where(c_p => c_p.project_name == report.pcode).FirstOrDefault();
}
当我运行它时,它会显示错误消息:

已存在与此命令关联的打开的DataReader,必须先关闭该命令

即使我把

var Current_Project = db.Projects.FirstOrDefault();
当我试着把它放在循环之外时,它起作用了


请给出建议。

在您的应用程序中的某个地方,您正在使用
datareader
,但尚未关闭它,这就是出现错误的原因,与数据库的连接仍然打开,这就是出现错误的原因

使用此选项关闭datareader:

datareader.Close();
解决方案如下所示:

“将MultipleActiveResultSets=true添加到连接字符串的提供程序部分”


一切正常,谢谢。

看看您必须启用
MARS
作为解决方案。但更有可能的是,您的代码不好。