超时问题重新开始。强类型数据集和objectdatasources

时间:2009-08-04 11:35:04

标签: asp.net dataset

我现在发现了一个蹩脚的TON不清楚,不是我可以开始解决这个问题的相关例子。不敢相信我已经花了不到10分钟,但到目前为止已经花了3个小时。

我正在查看一个aspx页面,旁边没有代码。此页面将水晶报告呈现为pdf。

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

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

所以有人有一个更好,更简单或至少一种有效的方法,所以今天我可以得到这个水晶报告:)

由于

4 个答案:

答案 0 :(得分:2)

如果您正在使用ObjectDataSource,则使用部分类来更改命令超时。

将以下代码添加到aspx页面上ObjectDataSource的objectCreated事件中;

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

}

Sory错过了关于部分课程的部分。查看Control TableAdapter Command Timeout Globally以设置命令超时

答案 1 :(得分:0)

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

即。 SQlConnection.ConnectionTimeout = somevalue

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

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