SqlDataSource 超时
Timeout for SqlDataSource
我在 VS 2010 中保留了一个我继承的 C# 应用程序,但我遇到了超时问题。
正在调用的存储过程现在执行时间更长,因此生成以下错误:
Could not retrieve record data: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
使用的SqlDataSource
直接在代码中实例化了,CommandTimeout
属性好像没有,不知道怎么设置。这是真的?如果不是,我该如何访问 属性?
我见过的解决方案在 .aspx
文件中有 SqlDataSource
,通常 CommandTimeout
是在控件(例如:gridview)事件中设置的。这里不是这种情况。
编辑:
一些代码
Results = new SqlDataSource();
Results.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["EM"].ConnectionString;
Results.SelectCommandType = SqlDataSourceCommandType.Text;
Results.SelectCommand = "exec sproc";
DataView ReturnedDataSet = (DataView)Results.Select(new
System.Web.UI.DataSourceSelectArguments());
谢谢。
尽管我强烈建议您 (运行!) 远离 SqlDataSource,但您可以从 C# 设置命令超时。您可以将事件处理程序连接到一个事件,这会公开 DbCommand where you can set the timeout.
var ds = new SqlDataSource("connectionString", "select * from dbo.Project_Master");
ds.Selecting += (object s, SqlDataSourceSelectingEventArgs e) => e.Command.CommandTimeout = 1000;
var dataView = (DataView)ds.Select(new DataSourceSelectArguments());
我在 VS 2010 中保留了一个我继承的 C# 应用程序,但我遇到了超时问题。
正在调用的存储过程现在执行时间更长,因此生成以下错误:
Could not retrieve record data: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
使用的SqlDataSource
直接在代码中实例化了,CommandTimeout
属性好像没有,不知道怎么设置。这是真的?如果不是,我该如何访问 属性?
我见过的解决方案在 .aspx
文件中有 SqlDataSource
,通常 CommandTimeout
是在控件(例如:gridview)事件中设置的。这里不是这种情况。
编辑:
一些代码
Results = new SqlDataSource();
Results.ConnectionString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["EM"].ConnectionString;
Results.SelectCommandType = SqlDataSourceCommandType.Text;
Results.SelectCommand = "exec sproc";
DataView ReturnedDataSet = (DataView)Results.Select(new
System.Web.UI.DataSourceSelectArguments());
谢谢。
尽管我强烈建议您 (运行!) 远离 SqlDataSource,但您可以从 C# 设置命令超时。您可以将事件处理程序连接到一个事件,这会公开 DbCommand where you can set the timeout.
var ds = new SqlDataSource("connectionString", "select * from dbo.Project_Master");
ds.Selecting += (object s, SqlDataSourceSelectingEventArgs e) => e.Command.CommandTimeout = 1000;
var dataView = (DataView)ds.Select(new DataSourceSelectArguments());