如何用一行代码为所有SqlCommand设置相同的CommandTimeout?

问题描述 投票:0回答:2

如何为我用一行代码创建的所有命令设置相同的CommandTimeout,而不是在每个命令中都键入CommandTimeout属性?

这是关于SQL连接。

这是我创建的连接字符串:

SqlConnection connection = new SqlConnection("server=" + server + ";user=" + user + ";pass=" + pass + ";MultipleActiveResultSets=True;");
c# sql sql-server database sqlconnection
2个回答
0
投票

据我所知,没有一种全局方法可以为每个命令设置超时。您必须为每个命令指定CommandTimeout属性。


0
投票

除了劫持/绕行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");
    }
© www.soinside.com 2019 - 2024. All rights reserved.