gpt4 book ai didi

c# - 方法 "Partial"返回

转载 作者:行者123 更新时间:2023-11-30 12:47:55 27 4
gpt4 key购买 nike

我正在开发一种在非常大的表中搜索信息的方法。因为我不使用 ORDER BY或查询中的任何特殊内容(只是一个简单的 SELECT id,description FROM complain WHERE description like 'YOUR TEXT HERE'" ),我希望通过返回成批结果来提供更动态的用户体验。这类似于在 Management Studio 中运行查询。

一些细节,我的调用堆栈并不大,但并非所有内容都在同一个方法中。有 buttonSearchClick , performCleanSearchsearchComplainBasedOnDetailInfo每个都在不同的层(分别是接口(interface)、SearchBLL 和 SearchDAL)。

我考虑过创建一个异步方法来填充类似 List<Complain> 的东西但这似乎并不干净。我将不得不制作 3 层异步。有没有人对如何实现这个有更好的想法?或者这是最好的方法吗?

Edit1: 我已经设法在连接字符串上使用 SqlCommand.BeginExecuteReader 和异步处理来从查询中获取出现的结果...现在我必须想办法使我的 DAL 方法异步,以便上层也可以异步获取结果...我正在考虑实现某种缓冲区...也许是一个队列...

Edit2: 我不是在寻找分页解决方案或类似 Twitter 的解决方案(您可以在其中滚动并搜索新结果),因为我知道一个事实,即用户必须阅读所有正在获取信息...

最佳答案

您可以使用 BackgroundWorker 并在您的 DoWork 中让您的批处理执行如下操作:

DataTable dt;
int iRecords = 0;
do
{
dt = new DataTable();
using(SqlConnection con = new SqlConnection(""))
{
SqlCommand cmd = new SqlCommand(string.Format("SELECT TOP 100 * FROM complain where ID > {0}", iRecords));
SqlDataAdapter sda = new SqlDataAdapter(cmd);
sda.Fill(dt);
//Report your progress here
}
} while(dt.Rows.Count != 0)

关于c# - 方法 "Partial"返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15387609/

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