【问题标题】:SQL Query TimeOutSQL 查询超时
【发布时间】:2013-02-26 19:45:04
【问题描述】:

我有一个运行存储函数并填充数据集的 vb.net 程序。但是,由于提取的信息量很大,有时它会在某些数据库上超时。

如何增加查询的超时时间以免超时?

在我的表单按钮中,我的以下代码不起作用(它仍然超时并且程序错误)

Me.1TableAdapter.Connection.ConnectionString = "Data Source=10.0.1.1;Initial Catalog=Database;Persist Security Info=True;User ID=USER;Password=PASSWORD; Connection Timeout = 120"

Me.1TableAdapter.Fill(Me.Dataset.1, TodayDt, TodayEnd)

Me.2TableAdapter.Fill(Me.Dataset.1, TodayDt, TodayEnd)

我收到错误消息:

System.Data.SQLClient.SQLException:超时已过期。在操作完成之前超时时间已过或服务器没有响应。

【问题讨论】:

标签: c# sql vb.net sql-server-2005


【解决方案1】:

连接有超时,但针对该连接运行的命令也是如此。该超时是为了尝试建立连接而等待多长时间。见http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectiontimeout.aspx

所以假设您使用的是SqlCommand,然后设置命令的CommandTimeout 属性。

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx

【讨论】:

  • 对。默认查询超时为 30 秒 IIRC。我发现无法在连接字符串中指定默认查询超时,这很烦人:您需要在配置文件中为其添加一个键,以便以不需要新构建的方式覆盖它。另请注意:此属性是命令执行或结果处理期间所有网络读取的累积超时(对于在调用方法期间读取的所有网络数据包)。返回第一行后仍有可能超时,不包括用户处理时间,只包括网络读取时间。
  • 我对此有点困惑。我真的不知道从哪里开始......我假设我需要增加 tableadapter 填充的超时......但是上面的链接让我感到困惑。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-03
  • 2012-10-16
  • 2019-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多