6

相关:如何以编程方式取消 SQL Server 执行过程

我创建了一个应用程序(Windows,WPF),它基本上是数据库(Sql Server)中数据的查看器。该应用程序没有编辑功能。

该应用程序提供了基于用户输入搜索记录的能力。在大多数情况下,行通过键列搜索并且运行得非常快。但是表中的一列是一个大文本字段,我想提供根据该字段的内容搜索行的能力。因此,生成的 sql 查询可能需要一些时间才能完成。我想提供一个停止按钮,以便用户可以根据需要中止搜索。我在上面放置的链接使用 Kill 命令杀死 Sql server 中的 spid,但我不确定这在我的情况下如何工作,因为我使用的是 Entity Framework (4.1)

例如,假设 a 有一个类似这样的查询:

var docs = from document in context.Documents
           join header in context.Headers
           on document.DocumentID equals header.HeaderID into headerGroup
           from subdoc in headerGroup.DefaultIfEmpty()
           where document.LargeTextColumn.Contains("search term")
           select (...)

foreach (var item in docs)
{
    //Do something with item here
}

由于在我使用 foreach 语句遍历它之前查询实际上不会发生,我如何为用户提供“停止查询”按钮?这类似于 Sql Server Management Studio 中的停止按钮。

这可能吗?

4

0 回答 0