gpt4 book ai didi

c# - 如何在 .NET 中异步查询数据库

转载 作者:行者123 更新时间:2023-11-30 12:26:19 24 4
gpt4 key购买 nike

我尝试在 .NET 中异步运行查询,以便在其他行仍在传输时读取前几行,但到目前为止我没有运气。

我想这样做的原因是我们经常需要从数据库中获取大表,虽然可以使用 ExecuteReader() 的 asnyc 变体完全卡住 UI,但它不会。似乎不可能逐行获取数据,以便用户可以看到进度,甚至可以使用数据的第一部分。

我尝试的是以下查询:

SELECT 'Hello '
WAITFOR DELAY '0:0:10'
SELECT 'World!'

当我使用 SqlCommand.BeginExecuteReader(callback) 运行此查询时,回调函数在大约 10 秒后被调用,因此它显然等待整个查询完成。我还尝试了 SqlCommand.ExecuteReaderAsync(),结果相同。

我的问题如下:这在 .NET 中甚至可能吗? 或者它因为我的查询而不起作用,如果使用真实查询(即大表)进行测试会更好?

最佳答案

获取表格中的前 10 行。

SELECT TOP 10 * FROM table ORDER BY ID DESC

然后运行第二个查询。

SELECT * FROM table ORDER BY ID DESC

检查前 10 个是否更改(创建、更新、删除)

更新:或者添加 TOP 然后使用 OFFSET 例如

SELECT TOP 10 * FROM table 

然后

SELECT * FROM table OFFSET 10 LIMIT 50 

或 SQL Server 2012 之前的版本请参阅 Dave Ballantyne 的 solution

关于c# - 如何在 .NET 中异步查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29324121/

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