首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭IDataReader时执行超时过期

关闭IDataReader时执行超时过期
EN

Stack Overflow用户
提问于 2018-01-31 12:17:20
回答 1查看 643关注 0票数 0

我正在从Server检索大量数据。一切正常,但是当我试图使用IDataReader语句关闭内部的

代码语言:javascript
复制
try
    {
      using (SqlConnection con = new SqlConnection(connString))
       {
         con.Open();
         using (SqlCommand command = new SqlCommand(sql_query, con))
         {
           command.CommandTimeout = 0;

           using (IDataReader rdr = new SqlCommand(sql_query, con).ExecuteReader(CommandBehavior.SequentialAccess))
            {
              dataTable = GetDataTableFromDataReader(rdr);
            }
             ....

我得到:执行超时过期了。在操作完成或服务器没有响应之前经过的超时时间。

使用类似于rdr =空的东西会更好吗?或者还有其他更好的解决方案如何关闭IDataReader?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-31 12:23:13

请注意,连接和命令都有超时设置。您不需要在使用块内手动关闭或释放。

您将在没有超时设置的SqlCommand块中创建第二个using。改为:

代码语言:javascript
复制
using (IDataReader rdr = command.ExecuteReader(CommandBehavior.SequentialAccess))
{
    dataTable = GetDataTableFromDataReader(rdr);
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48542007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档