我正在开发一个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,其中所有这些值都是字符串。我如何用词典做到这一点?
答案 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方法。