zoukankan      html  css  js  c++  java
  • 网站出现"已有打开的与此命令相关联的 DataReader,必须首先将它关闭。"的解决方案 子曰

    解决方案有两种:

    1、数据库为SQL Server 2005版本时,可以在web.config数据库链接串中加入MultipleActiveResultSets=true。

    2、进行重复操作之前,将数据查询结果放入内存中,再进行使用。

        我的web.config数据库链接串中原来是有MultipleActiveResultSets=true的,但是开发是的服务器是sql2005,部署的服务器是sql2000,因此才出现了问题。

         因此只能用第二种解决方案,修改源代码。

          var contacts = from c in db.Contact
    select c;
    foreach (Contact c in contacts)
    {
    if (c.Phones.IsLoaded == false)
    c.Phones.Load();
    if (c.Phones.Count > 0)
    {
    Console.WriteLine(c.LastName);
    foreach (ContactPhone p in c.Phones)
    {
    Console.WriteLine("\t"+p.ContactPhoneId);
    }
    }
    }
    


    改成

      var contacts = from c in db.Contact
    select c;
    List<Connect> results = contacts.ToList();
    foreach (Contact c in results)
    {
    if (c.Phones.IsLoaded == false)
    c.Phones.Load();
    if (c.Phones.Count > 0)
    {
    Console.WriteLine(c.LastName);
    foreach (ContactPhone p in c.Phones)
    {
    Console.WriteLine("\t"+p.ContactPhoneId);
    }
    }
    }
    



     

  • 相关阅读:
    多线程的设计模式
    Deque 双端队列
    并发Queue
    并发类容器
    同步类容器
    java0926
    第十二次作业
    第十一次作业
    第十次
    第九次
  • 原文地址:https://www.cnblogs.com/suixufeng/p/3336121.html
Copyright © 2011-2022 走看看