为了账号安全,请及时绑定邮箱和手机立即绑定

SqlDataSource 超时

SqlDataSource 超时

C#
慕田峪7331174 2022-01-09 10:27:10
我在继承的 VS 2010 中保留了一个 C# 应用程序,但我遇到了超时问题。正在调用的存储过程现在需要更长的时间来执行,这会产生以下错误:无法检索记录数据:超时已过期。在操作完成之前超时时间已过或服务器没有响应。该SqlDataSource采用的是直接在代码中实例化,我不知道如何设置CommandTimeout属性似乎因为它没有用。这是真的?如果不是,我如何访问该属性?我见过的解决方案SqlDataSource在.aspx文件中,通常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());
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

尽管我强烈建议您从 SqlDataSource 移开(运行!),但您可以从 C# 设置命令超时。您可以将事件处理程序连接到一个事件,这会公开DbCommand ,您可以在其中设置 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());


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 279 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号