C# 调整超时后SQL Server在C中超时

C# 调整超时后SQL Server在C中超时,c#,visual-studio-2017,sql-server-2016,connection-timeout,C#,Visual Studio 2017,Sql Server 2016,Connection Timeout,我有一个用C编写的windows窗体应用程序,它将查询传递到SQL Server数据库,然后在dataviewgrid中显示结果。传递到数据库的查询取决于表单中选择的选项 在ManagementStudio中运行一个特定的查询需要一分钟多一点的时间,但是当它从程序传递到数据库时会超时。以下是我为解决这一问题所采取的步骤: 通过在sql连接字符串中将连接超时选项设置为300秒,在程序中添加了5分钟超时。示例:数据源=ab;初始目录=abc;用户ID=用户;密码=pw;连接超时=300 将SQL S

我有一个用C编写的windows窗体应用程序,它将查询传递到SQL Server数据库,然后在dataviewgrid中显示结果。传递到数据库的查询取决于表单中选择的选项

在ManagementStudio中运行一个特定的查询需要一分钟多一点的时间,但是当它从程序传递到数据库时会超时。以下是我为解决这一问题所采取的步骤:

通过在sql连接字符串中将连接超时选项设置为300秒,在程序中添加了5分钟超时。示例:数据源=ab;初始目录=abc;用户ID=用户;密码=pw;连接超时=300

将SQL Server实例中的远程查询超时设置为0表示没有超时。示例:EXEC sp_配置“远程查询超时”,0;去

这两种选择都不起作用。尽管实现了这两种方法,但c程序在不到一分钟的时间后仍会抛出sql超时错误

有解决办法吗?我已经搜索了这个关于堆栈溢出的主题,到目前为止,所有的建议都是我已经做过的1或2

作为参考,我使用的是Visual Studio 17社区版和SQL Server 2016开发者版

任何帮助都将不胜感激


谢谢

SQL命令上有CommandTimeout属性。尝试设置它。

SQL命令上有CommandTimeout属性。尝试设置。连接超时和命令超时是两件不同的事情

在分配的超时时间内无法从连接池检索连接时,会发生连接超时

当检索到连接时,会发生命令超时,但针对该连接执行的查询不会在分配的命令超时时间内返回结果。ADO.NET中的默认命令超时时间为30秒

如果已将连接超时设置为300秒,但仍有超时,则可能是命令超时。正如walkers01所说,将命令超时设置为适当的秒数。300秒应该远远不够;如果您的查询在SSMS中在一分钟内执行,则90秒的超时就足够了。

连接超时和命令超时是两件不同的事情

在分配的超时时间内无法从连接池检索连接时,会发生连接超时

当检索到连接时,会发生命令超时,但针对该连接执行的查询不会在分配的命令超时时间内返回结果。ADO.NET中的默认命令超时时间为30秒


如果已将连接超时设置为300秒,但仍有超时,则可能是命令超时。正如walkers01所说,将命令超时设置为适当的秒数。300秒应该远远不够;如果您的查询在SSMS中在一分钟内执行,则90秒的超时时间就足够了。

如果您使用的是SqlDataAdapter,请尝试此操作以获得无限的查询执行时间。我用了这个,解决了我的问题

 SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
                    dscmd.SelectCommand.CommandTimeout = 0;

如果您使用的是SqlDataAdapter,则可以无限期地执行查询。我用了这个,解决了我的问题

 SqlDataAdapter dscmd = new SqlDataAdapter(sql, cnn);
                    dscmd.SelectCommand.CommandTimeout = 0;