如何在 App.config 中设置 SQLCommandTimeout

Dha*_*tel 6 c# sql

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

com.CommandTimeout = 120;
Run Code Online (Sandbox Code Playgroud)

但是我的应用程序中有很多方法,所以我想从 APP.config 文件中设置它,以便它适用于应用程序级别,任何人都可以告诉我我怎么能做到这一点

谢谢

ReP*_*rre 6

实现此目的的最简单方法是添加一个新条目,<appSettings>如下所示:

<appSettings>
    <add key="commandTimeout" value="3000" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

然后,创建一个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;
    }
}
Run Code Online (Sandbox Code Playgroud)

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

using(var command = CommandFactory.CreateCommand(yourConnection))
{
    //
}
Run Code Online (Sandbox Code Playgroud)