gpt4 book ai didi

c# - ADO.Net DataReader 超时问题

转载 作者:太空狗 更新时间:2023-10-29 21:07:29 26 4
gpt4 key购买 nike

我正在使用 ADO.Net + C# + VSTS 2008 + ADO.Net 连接到 SQL Server 2008 Enterprise。我使用的模式/示例与此处提到的几乎相同——使用 ADO.Net DataReader 逐个条目(行)检索数据。

http://msdn.microsoft.com/en-us/library/haa3afyz.aspx

我的问题是,如果我在此示例中设置 SqlCommand 超时,1. 我认为超时适用于我们可以使用多少时间作为最大值来检索一个特定的行,而不是整个数据逐项循环的总超时?

顺便说一句:我的意思是循环,

while (reader.Read())
{
Console.WriteLine("{0}\t{1}", reader.GetInt32(0),
reader.GetString(1));
}

2。并且这个超时只关系到从数据库中检索数据条目需要多少时间,而这个超时与我们处理每个条目的时间无关(例如,如果我们将超时设置为 20 秒,如果需要 1 秒来处理每个条目)从数据库中检索一个数据条目,我的应用程序逻辑需要 30 秒来操作数据条目,超时永远不会发生)。

正确理解?

最佳答案

您可以设置的命令超时适用于您为 ADO.NET 提供的工作时间。

如果您调用 cmdQuery.ExecuteNonQuery()它除了执行一条 SQL 语句外什么都不返回,这是执行该语句所需的时间。

如果您调用 cmdQuery.ExecuteReader()它返回一个数据读取器,这是 ADO.NET 设置/构造该数据读取器以便您随后可以使用它所需的时间。

如果您调用 cmdQuery.ExecuteScalar()它返回单个标量值,它是执行查询并获取单个结果所需的时间。

如果您使用 dataAdapter.Fill()填充一个数据表或数据集,就是ADO.NET检索数据,然后填充数据表或数据集所需要的时间。

总的来说:超时适用于 ADO.NET 可以执行的工作部分 - 执行语句、填充数据集、返回标量值。

当然,它适用于迭代结果所花费的时间(在数据读取器的情况下)。那根本没有意义...

马克

关于c# - ADO.Net DataReader 超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1484027/

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