C# 如何使用C小步从Sql Server长查询检索数据

C# 如何使用C小步从Sql Server长查询检索数据,c#,sql-server,database,C#,Sql Server,Database,我希望像SQLServerManagementStudio那样从长查询中获取数据。我的意思是,它在从服务器(在本例中为SQLServer2008)接收数据后立即显示少量数据 我正在使用C和NET3.5。我已经阅读了有关BeginExecuteReader的文档:此方法异步启动查询,但读取操作是同步完成的 不幸的是,我在谷歌搜索时没有找到任何真实的例子:-你能帮我解决这个问题吗 我的查询很简单:从[…]中选择[…],其中[…] 但是涉及到很多行,我想向用户展示匹配查询的第一行,而不必等待整个操作完

我希望像SQLServerManagementStudio那样从长查询中获取数据。我的意思是,它在从服务器(在本例中为SQLServer2008)接收数据后立即显示少量数据

我正在使用C和NET3.5。我已经阅读了有关BeginExecuteReader的文档:此方法异步启动查询,但读取操作是同步完成的

不幸的是,我在谷歌搜索时没有找到任何真实的例子:-你能帮我解决这个问题吗

我的查询很简单:从[…]中选择[…],其中[…]

但是涉及到很多行,我想向用户展示匹配查询的第一行,而不必等待整个操作完成


非常感谢

您可以尝试对结果集进行分页,并在数据块从sql server数据库传输到应用程序后立即获取数据块

计算结果集。 使用count number,在Sql Server上使用行号对页面大小为1000或更大的结果集进行分页 显示已分页的第一个结果集,然后在其余结果集返回时立即追加它们。
希望有帮助。

您可以尝试对结果集进行分页,并在结果集从sql server数据库传输到应用程序后立即获取数据块

计算结果集。 使用count number,在Sql Server上使用行号对页面大小为1000或更大的结果集进行分页 显示已分页的第一个结果集,然后在其余结果集返回时立即追加它们。
希望能有所帮助。

您不需要异步执行读取器来完成您想要完成的任务。这里有几个选项供您选择:

选项1:在读取记录或按批处理时显示记录。根据应用程序的不同,您可能需要在单独的线程上执行阅读器,并通知UI线程使用BackgroundWorker(例如)相应地更新视图

using (SqlDataReader reader = command.ExecuteReader())
{
    while (reader.Read())
    {
        //read record, diplay record
    }
}

选项2最佳选项:一次只显示一屏数据。

您不需要异步执行读卡器来完成您想要完成的任务。这里有几个选项供您选择:

选项1:在读取记录或按批处理时显示记录。根据应用程序的不同,您可能需要在单独的线程上执行阅读器,并通知UI线程使用BackgroundWorker(例如)相应地更新视图

using (SqlDataReader reader = command.ExecuteReader())
{
    while (reader.Read())
    {
        //read record, diplay record
    }
}
选项2最佳选项:一次只显示一屏数据