我已经使用 SQL 数据库开发了一个窗口服务,当前在我的数据库中充满了记录,因此查询执行需要很长时间,而默认命令超时为 30S,但我想将其增加到 120S,一个选项是
com.CommandTimeout = 120;
Run Code Online (Sandbox Code Playgroud)
但是我的应用程序中有很多方法,所以我想从 APP.config 文件中设置它,以便它适用于应用程序级别,任何人都可以告诉我我怎么能做到这一点
谢谢
实现此目的的最简单方法是添加一个新条目,<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)