将结果集变量转换为数组

时间:2011-08-17 11:09:22

标签: sql-server ssis

我正在使用SSIS(VS 2008),我想获取一个填充的结果集变量(从EXECUTE SQL任务填充)并在SSIS脚本组件(c#)中将其转换为数组。

结果集包含一列。

执行此操作的代码是什么?

修改:这是用于回填练习;在正常情况下,Web应用程序在传入文本字符串的db上调用proc,并根据此类查询获取匹配单词列表:

SELECT  [Term] 
    FROM    [dbo].[ATableOFTerms] WITH ( NOLOCK )    
    WHERE   CHARINDEX(' ' + Term + ' ', @StringBeingSearched) > 0 

一旦Web应用程序获得此列表,它就会有很多业务规则围绕它转换为它的内容,但实际上它会获取匹配术语列表并生成一个字符串,然后用于传入全文搜索。 / p>

SSIS中的回填过程需要模仿,因此脚本组件具有处理业务逻辑的相同Web应用程序代码,但我需要执行上述操作的c#代码。这很好,我将所有[ATableTerms]返回到结果集变量,但现在我需要从变量填充一个数组。

当我有这个时,我可以使用string.Contains来实现相同的结果。

1 个答案:

答案 0 :(得分:0)

IndexOf(term,StringComparison.OrdinalIgnoreCase)> = 0这就是它的解决方法,虽然我很想替代它。

OleDbDataAdapter adapter = new OleDbDataAdapter();

string Title = " " + Row.Title + " ";           
DataTable dt = new DataTable();
adapter.Fill(dt , Variables.ATableOfTerms);


ArrayList terms = new ArrayList();
ArrayList returnedTerms = new ArrayList();

foreach (DataRow dr in dt.Rows)
{
    terms.Add(" " + dr["Term"] + " ");

}


foreach (string term in terms)
{
    if (Title.IndexOf(term, StringComparison.OrdinalIgnoreCase) >= 0)
    {
        returnedTerms.Add(term.Trim());

    }
}