如何为我用一行代码创建的所有命令设置相同的CommandTimeout
,而不是在每个命令中都键入CommandTimeout
属性?
这是关于SQL连接。
这是我创建的连接字符串:
SqlConnection connection = new SqlConnection("server=" + server + ";user=" + user + ";pass=" + pass + ";MultipleActiveResultSets=True;");
据我所知,没有一种全局方法可以为每个命令设置超时。您必须为每个命令指定CommandTimeout属性。
除了劫持/绕行SqlCommand类,您可以通过扩展方法来达到相同的效果。
public static SqlCommand CreateCommand(this SqlConnection conn, string cmdText, SqlTransaction tran = null)
=> new SqlCommand(cmdText, conn, tran) { CommandTimeout = 3000 };
[STAThread]
static void Main()
{
var conn = new SqlConnection("xyz");
var cmd = conn.CreateCommand("select 1");
}