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

时间:2010-06-07 04:56:45

标签: c# dictionary sql-server-2005 visual-studio-2008

我正在开发一个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'转换为'string'

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

1 个答案:

答案 0 :(得分:1)

问题不在于你的字典,而在于你的传递方式。问题是您的方法AppendDataCT,它需要string参数,而不是dictionary<string,string>

假设这个,你可能想要这样的东西....

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

这将迭代你的字典,并为每对[key,value] 使用对中的值调用您的AppendDataCT方法。