小编典典

如何在App.config中设置SQLCommandTimeout

sql

我已经使用数据库中的SQL数据库开发了一个窗口服务,该数据库中的记录已满,因此查询执行需要很多时间,而默认命令超时是30S,但我想将其增加到120S。

com.CommandTimeout = 120;

但是我的应用程序中有很多方法,因此我想从APP.config文件中进行设置,这样它将适用于应用程序级别,任何人都可以告诉我如何实现此目标

谢谢


阅读 227

收藏
2021-04-22

共1个答案

小编典典

实现此目的的最简单方法是在<appSettings>类似以下内容的地方添加新条目:

<appSettings>
    <add key="commandTimeout" value="3000" />
</appSettings>

然后,创建一个CommandFactory将填充值的类

class CommandFactory
{
    public static int CommandTimeout
    {
        get
        {
            int commandTimeout = 0;
            var configValue = ConfigurationManager.AppSettings["commandTimeout"];
            if(int.TryParse(configValue, out commandTimeout))
               return commandTimeout;
            return 120; 
        }
    }

    public static SqlCommand CreateCommand(SqlConnection connection)
    {
        var command = new SqlCommand()
        {
            Connection = connection,
            CommandTimeout = CommandTimeout
        };
        return command;
    }
}

现在,在您的代码中,不仅要实例化一个新的SqlCommand,还需要调用CommandFactory方法:

using(var command = CommandFactory.CreateCommand(yourConnection))
{
    //
}
2021-04-22