【问题标题】:getting error while filling dataset using ADO.NET - Timeout expired使用 ADO.NET 填充数据集时出错 - 超时已过期
【发布时间】:2015-11-06 00:40:25
【问题描述】:

收到错误提示:

“超时。在操作完成之前超时时间已过,或者服务器没有响应。” 它获得 700 条记录,但需要 45 秒。我认为这是问题所在。 在这段代码中如何添加 cmd.CommandTimeout = 60;

我的代码是:

Dap_Proj = new SqlDataAdapter("select LinkId,LinkName,CategoryId, ReportLinks,SubmissionStatus,convert(nvarchar(18),LnkSubmsnDate) as LnkSubmsnDate, convert(nvarchar(18), LnkUpdateDate) as LnkUpdateDate,LnkSubmtdBy,K.KeyWord,RenewalDate  from tbl_Link L left join Tbl_keywords K on L.KeywordID=K.KeywordID  where 

(SubmissionStatus='Approved'or SubmissionStatus='Waiting for Approval') and  LnkSubmtdBy='" + Session["LoginUser"].ToString() + "' and Convert(Char(4),LnkSubmsnDate,100) in (select Convert(Char(4),LnkSubmsnDate,100) from tbl_Link )order by case when RenewalDate is null then 1 else 0 end,RenewalDate", connection);

            ds = new DataSet();
            Dap_Proj.Fill(ds);

【问题讨论】:

  • 问题似乎与您的数据库有关。您的查询太复杂或返回许多行。在 sql server 中执行您的查询并检查它是否执行
  • 尝试声明您的命令,然后将其超时值设置为 0 SqlCommand cmd = new SqlCommand("YourQuery"); cmd.CommandTimeout = 0;
  • 它执行和获取记录但需要 44 秒。并检索 700 条记录@shreesha
  • commndtimeout = 0 意味着什么。没有超时?如果我给 timeout = 60,会发生什么@Dumisani
  • 是 0 表示“不要超时”。如果你给它 60,它会在一分钟后超时。

标签: c# gridview ado.net dataset sqldataadapter


【解决方案1】:

要在 sqlDataAdapter 上设置命令超时,试试这个

SqlDataAdapter Dap_Proj = new SqlDataAdapter(strSQLString, conUS);
Dap_Proj .SelectCommand.CommandTimeout=120;

【讨论】:

    猜你喜欢
    • 2011-09-26
    • 2010-10-27
    • 2021-10-26
    • 2010-12-11
    • 1970-01-01
    • 2020-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多