如何在App.config中设置SQLCommandTimeout

本文关键字:设置 SQLCommandTimeout config App | 更新日期: 2023-09-27 18:18:01

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

com.CommandTimeout = 120;

但是我在我的应用程序中有很多方法,所以我想从APP.config文件中设置它,所以它将适用于应用程序级别,谁能告诉我如何才能实现这个

谢谢

如何在App.config中设置SQLCommandTimeout

实现这一目标的最简单方法是在<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))
{
    //
}

在app.config文件中使用

<configuration>
  <appSettings>
    <add key="connectioStringName" value="Data Source=source;Initial Catalog=tableName;User Id=databaseName;Password=password;Connection Timeout=3000"/>
  </appSettings>
</configuration>