gpt4 book ai didi

c# - 使用 ADO.Net 的查询的连接超时异常

转载 作者:太空狗 更新时间:2023-10-29 17:31:55 25 4
gpt4 key购买 nike

更新:看起来查询没有抛出任何超时。连接超时。

这是执行查询的示例代码。有时,在执行耗时查询时,它会抛出超时异常。

不能使用以下任何技术:1)增加超时。2) 使用回调异步运行它。这需要以同步方式运行。

请建议在执行耗时查询时保持连接的任何其他技术?

private static void CreateCommand(string queryString,
string connectionString)
{
using (SqlConnection connection = new SqlConnection(
connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Connection.Open();
command.ExecuteNonQuery();
}
}

最佳答案

由于您使用的是不返回任何行的 ExecuteNonQuery,因此您可以尝试这种基于轮询的方法。它以异步方式执行查询(没有回调)但应用程序将等待(在 while 循环内)直到查询完成。来自 MSDN .这应该可以解决超时问题。请尝试一下。

但是,我同意其他人的意见,您应该更多地考虑优化查询以在 30 秒内执行。

        IAsyncResult result = command.BeginExecuteNonQuery();

int count = 0;
while (!result.IsCompleted)
{
Console.WriteLine("Waiting ({0})", count++);
System.Threading.Thread.Sleep(1000);
}
Console.WriteLine("Command complete. Affected {0} rows.",
command.EndExecuteNonQuery(result));

关于c# - 使用 ADO.Net 的查询的连接超时异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/105642/

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