gpt4 book ai didi

c# - SQL Server 的超时设置

转载 作者:IT王子 更新时间:2023-10-29 04:23:19 25 4
gpt4 key购买 nike

我正在使用 VSTS 2008 + ADO.Net + C# + .Net 3.5 + SQL Server 2008。我在客户端使用 ADO.Net 连接到数据库服务器以执行存储过程,然后从存储过程返回结果.

这是我的代码。我有两个关于超时的问题,

  1. 如果我没有明确设置任何与超时相关的设置,对于与数据库服务器的连接,是否有任何超时设置(例如,如果在一些默认时间内无法连接到数据库服务器,将会有一些超时异常?)?

  2. 如果我没有明确设置任何与超时相关的设置,对于存储过程的执行,是否有任何超时设置(例如,如果在一些默认时间内无法将结果从服务器检索到 ADO.Net 客户端, 会有超时异常吗?)?

        using (SqlConnection currentConnection = new SqlConnection("Data Source=.;Initial Catalog=TestDB;Trusted_Connection=true;Asynchronous Processing=true"))
    {
    // check current batch conut
    currentConnection.Open();
    using (SqlCommand RetrieveOrderCommand = new SqlCommand())
    {
    RetrieveOrderCommand.Connection = currentConnection;
    RetrieveOrderCommand.CommandType = CommandType.StoredProcedure;
    RetrieveOrderCommand.CommandText = "prc_GetOrders";
    RetrieveBatchCountCommand.Parameters.Add("@Count", SqlDbType.Int).Direction = ParameterDirection.Output;
    RetrieveBatchCountCommand.ExecuteNonQuery();
    int rowCount = Convert.ToInt32(RetrieveOrderCommand.Parameters["@Count"].Value);
    }
    }

最佳答案

正如 gbn 已经提到的,有两种类型的超时:

1) 连接超时:这由您的连接字符串控制:

Data Source=.;Initial Catalog=TestDB;
Trusted_Connection=true;Asynchronous Processing=true

如果您向该字符串添加 Connect Timeout=120,您的连接将尝试 120 秒打开然后中止。

Data Source=.;Initial Catalog=TestDB;
Trusted_Connection=true;Asynchronous Processing=true;
Connect Timeout=120;

2) 命令超时:对于每个命令,您还可以指定一个超时 - ADO.NET 将在取消您的查询之前等待这段时间。您在 SqlCommand 对象上指定:

    using (SqlCommand RetrieveOrderCommand = new SqlCommand())
{
RetrieveOrderCommand.CommandTimeout = 150;
}

关于c# - SQL Server 的超时设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1354271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com