mar*_*ler 2 .net c# sql-server odbc timeout
我有一个.net 4.0 c#应用程序需要与mssql 2008的odbc连接.连接通常是完美的.但是当我运行一个通常运行几分钟的查询时(并且在项目的这一点上我不能优化查询运行时),我会在30秒后得到超时:
错误[HYT00] [Microsoft] [SQL Server Native Client 10.0]查询超时已过期
我已经尝试为odbc连接更改驱动程序(sqlsrv32.dll,sqlncli10.dll,sqlncli11.dll),但我总是遇到类似的错误.
这是我为模拟问题而构建的虚拟代码:
using (
OdbcConnection conn =
new OdbcConnection("DSN=d3FA;uid=sa;pwd=1234;MARS_Connection=yes;Connection Timeout=37;"))
{
conn.ConnectionTimeout = 37;
conn.Open();
OdbcCommand myCommand = new OdbcCommand("WAITFOR DELAY '00:00:45'", conn);
myCommand.ExecuteNonQuery();
}
Run Code Online (Sandbox Code Playgroud)
如您所见,我已在连接字符串中设置了连接超时,并且还设置了连接的属性.但似乎只是从查询执行中忽略了这些信息(37秒).超时仍然在30秒后发生.
从Microsoft我获得了Windows ODBC API提供SQLSetStmtAttr-Function的信息,该函数允许设置SQL_ATTR_QUERY_TIMEOUT属性.也许设置这个属性可以解决我的问题 - 但我找不到任何解决方案如何通过.net设置这个值.
结论:有人知道如何增加超时值吗?
小智 9
使用OdbcCommand对象的CommandTimeout属性
myCommand.CommandTimeout=37;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8938 次 |
| 最近记录: |