文章内容
2017/7/28 15:00:26,作 者: 黄兵
执行命令定义时出错。有关详细信息,请参阅内部异常
最近在处理一些问题的时候,出现了错误,提示如下:
{"执行命令定义时出错。有关详细信息,请参阅内部异常。"}
之后看了一下内部错误,提示如下:
{"已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。"}
出错代码如下所示:
using (UnitOfWork uow = new UnitOfWork())
{
var getBlogItem = uow.BlogRepository.GetAll().Where(x => x.Id < 645);
foreach (var item in getBlogItem.Select(x => x.Id))
{
try
{
//单个查询
Blog blogModel = new Blog();
blogModel.Id = getBlogItem.Where(x => x.Id == item).FirstOrDefault().Id;
blogModel.Title = getBlogItem.Where(x => x.Id == item).FirstOrDefault().Title;
blogModel.Body = getBlogItem.Where(x => x.Id == item).FirstOrDefault().Body;
blogModel.CreationTime = getBlogItem.Where(x => x.Id == item).FirstOrDefault().CreationTime;
SearchIndexManager.GetInstance().AddQueue(blogModel.Id.ToString(), blogModel.Title, blogModel.Body, blogModel.CreationTime);
ViewData["info"] = @"<div class='alert alert-success alert-dismissable'>\r\n<button aria-hidden='true' data-dismiss='alert' class='close' type='button'>×</button>\r\n 建立索引成功! <a class='alert-link' href='notifications.html#'>了解更多</a>.</div>";
}
catch (Exception ex)
{
ViewData["info"] = @"<div class='alert alert-danger alert-dismissable'>\r\n<button aria-hidden='true' data-dismiss='alert' class='close' type='button'>×</button>\r\n 建立索引失败! <a class='alert-link' href='notifications.html#'>了解更多</a>.</div>";
}
}
}
return View();
这个看着没有什么问题,但是仔细分析之后在循环之前没有将其读出来,也没有关闭连接,才出现了这样的错误提示:
{"已有打开的与此 Command 相关联的 DataReader,必须首先将它关闭。"}
解决方案:
using (UnitOfWork uow = new UnitOfWork())
{
var getBlogItem = uow.BlogRepository.GetAll().Where(x => x.Id < 645).ToList();
foreach (var item in getBlogItem.Select(x => x.Id))
{
try
{
//单个查询
Blog blogModel = new Blog();
blogModel.Id = getBlogItem.Where(x => x.Id == item).FirstOrDefault().Id;
blogModel.Title = getBlogItem.Where(x => x.Id == item).FirstOrDefault().Title;
blogModel.Body = getBlogItem.Where(x => x.Id == item).FirstOrDefault().Body;
blogModel.CreationTime = getBlogItem.Where(x => x.Id == item).FirstOrDefault().CreationTime;
SearchIndexManager.GetInstance().AddQueue(blogModel.Id.ToString(), blogModel.Title, blogModel.Body, blogModel.CreationTime);
ViewData["info"] = @"<div class='alert alert-success alert-dismissable'>\r\n<button aria-hidden='true' data-dismiss='alert' class='close' type='button'>×</button>\r\n 建立索引成功! <a class='alert-link' href='notifications.html#'>了解更多</a>.</div>";
}
catch (Exception ex)
{
ViewData["info"] = @"<div class='alert alert-danger alert-dismissable'>\r\n<button aria-hidden='true' data-dismiss='alert' class='close' type='button'>×</button>\r\n 建立索引失败! <a class='alert-link' href='notifications.html#'>了解更多</a>.</div>";
}
}
}
return View();
加了一个.ToList(),具体的说明看这里Enumerable.ToList
问题解决,有什么问题给我在下面留言。
黄兵的个人博客原创。
转载请注明出处:黄兵的个人博客 - 执行命令定义时出错。有关详细信息,请参阅内部异常
参考资料:
评论列表