如何将字典变量传递给另一个过程

问题描述:

我正在开发一个C#VS2008/SQL Server网站应用程序。我从来没有使用过Dictionary类,但我试图用Dictionary变量替换我的Hashtable。如何将字典变量传递给另一个过程

这里是我的aspx.cs代码的一部分:

... 
Dictionary<string, string> openWith = new Dictionary<string, string>(); 

for (int col = 0; col < headers.Length; col++) 
{ 
    @temp = (col + 1); 
    @tempS = @temp.ToString(); 
    @tempT = "@col" + @temp.ToString(); 
    ... 
    openWith.Add(@tempT, headers[col]); 
} 
... 
for (int r = 0; r < myInputFile.Rows.Count; r++) 
{ resultLabel.Text = ADONET_methods.AppendDataCT(myInputFile, openWith); } 

但是,这是给我的最后一行编译器错误: 参数“2”:无法从“System.Collections.Generic转换。Dictionary'to'string'

如何将整个openWith变量传递给AppendDataCT? AppendDataCT是调用我的SQL存储过程的方法。我想传入整行,其中每行都有一组我想要添加到数据库表中的唯一值。例如,如果每行都需要单元格A,B和C的值,那么我想将这3个值传递给AppendDataCT,其中所有这些值都是字符串。我如何用Dictionary来做到这一点?

+0

从字典中提取并作为字符串传递 – 2010-06-07 05:02:50

这个问题不是你的字典,也不是你如何通过它。问题是你的方法AppendDataCT,它期待一个string参数,而不是一个dictionary<string,string>

假设这,你可能想要的东西还挺喜欢这个....

foreach(KeyValuePair<string,string> item in openWith) 
{ 
    resultLabel.Text = ADONET_methods.AppendDataCT(myInputFile, item.Value); 
} 

这会遍历你的字典,并对于每对[key,value] ,使用该对中的值调用AppendDataCT方法。