【问题标题】:Timeout question re. strongly typed datasets and objectdatasources超时问题重新。强类型数据集和对象数据源
【发布时间】:2011-12-17 00:37:11
【问题描述】:

我现在发现了一大堆不清楚的、不相关的例子来说明我可以开始解决问题的方法。不敢相信我在这上面花了超过 10 分钟,但到目前为止已经 3 小时了。

我正在查看一个 aspx 页面,后面几乎没有代码。此页面将水晶报表呈现为 pdf。

水晶报表绑定到一个objectdatasource,该objectdatasource绑定到一个愚蠢的大数据集中的一个tableadapter。

问题是查询超时。这是一个长时间运行的过程(50 秒),超时时间为 30 秒。我已经考虑添加一个部分类,但由于对象没有绑定在代码中,我无法以这种方式设置超时,而且它是一个网站,因此数据集背后的代码无论如何都是一大堆 XML而且我不确定我是否可以在这里添加一个部分类来公开超时,如果可以的话,我会重复大约 70 次,每个适配器一次。

那么有没有人有更好、更简单或至少有一种方法可以让我今天得到这份水晶报告:)

谢谢

【问题讨论】:

    标签: asp.net dataset


    【解决方案1】:

    如果你使用和ObjectDataSource,你使用一个部分类来改变命令超时。

    在aspx页面的ObjectDataSource的objectCreated事件中添加如下代码;

    protected void ObjectDataSource1_ObjectCreated(object sender, ObjectDataSourceEventArgs e)
    {
        DataSet1TableAdapters.DataTable1Adaptor ta;
        ta = (DataSet1TableAdapters.DataTable1Adaptor)e.ObjectInstance;
        ta.setCommandTimeOut(60);
    
    }
    

    抱歉,错过了关于部分类的部分。看看Control TableAdapter Command Timeout Globally 设置命令超时

    【讨论】:

      【解决方案2】:

      不能增加用于填充数据集的 SQLCONnection 的 ConnectionTimeout 吗?

      SQlConnection.ConnectionTimeout = somevalue

      【讨论】:

      • 不抱歉,不是连接超时,而是嵌入到自动生成的数据集中的命令对象,它设置为 30 并且它没有公开,因此您可以更改它。
      【解决方案3】:

      有两种可能:优化过程或增加连接超时。

      我知道您说这是命令超时,但我敢打赌,是与数据库的连接超时。我从未听说过命令对象超时。

      您是否尝试过connection string 中更改/设置超时?

      【讨论】:

      • 命令超时和连接超时是分开的,连接超时是300秒。您可能使用过 SQL Management Studio 并发现您可以通过超时但您的连接仍然打开的 gui 执行存储过程。这里的原理相同,如果您通过命令行调用 proc,它不会超时,因为超时不适用于那里,它通过 gui 窗口应用,尽管它使用类似的命令对象。如果您远程使用设计器来更改表​​结构,也会发生同样的事情,如果您使用 sql 命令而不是它不会超时。连接不相关
      • 感谢您的详细解释,我从来没有理由认为 CommandTimeout 与 ConnectionTimeout 有什么不同。
      【解决方案4】:

      如果您无法修改 TableAdapter 的超时时间,并且假设该过程无法更快地运行,那么除了将报表的数据源直接设置为存储过程之外,我看不到任何选项。 Crystal 并不真正关心那么低的超时。

      【讨论】:

      • 我添加了部分类并暴露了命令超时。更改了 aspx,因此在此阶段不绑定报告,而是在自己调用数据后将其绑定在页面加载中,首先在后面的代码中将超时设置为 300 秒。
      猜你喜欢
      • 2016-07-20
      • 1970-01-01
      • 1970-01-01
      • 2013-02-16
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 1970-01-01
      相关资源
      最近更新 更多