从存储过程记录集中删除记录

时间:2012-10-12 11:01:37

标签: c# sql-server-2008 stored-procedures code-behind

我有一个存储过程,它根据复杂查询返回记录集(结果集A),并且记录按特定顺序排列。我有另一个查询从另一个表(结果集B)返回ID值。

我想做一些类似于“从结果集A中获取记录(结果集B中存在id)”的内容。

我需要在代码隐藏中执行此操作。任何想法如何去做?

1 个答案:

答案 0 :(得分:1)

您可以使用此扩展方法 - 基于yield和Linq Contains operator

public static IEnumerable<string> Select(this DataReader reader, int index)
{
    while (reader.Read())
    {
        yield return reader[index].ToString();
    }
}

Nota:你有两个记录集reader1和reader2,选择扩展方法获取项目IEnumerable列表。

var list1 = reader1.Select(0); //Search on first column;
var list2 = reader2.Select(0);
//Get list items of values (index 0) of list2, who exist in list1.
var result = from item on list2.Select(0)
             where list1.Contains(item)
             select item;