Как передать переменную Dictionary в другую процедуру - PullRequest
0 голосов
/ 07 июня 2010

Я занимаюсь разработкой веб-приложения на C # VS2008 / SQL Server. Я никогда раньше не использовал класс Dictionary, но я пытаюсь заменить мой Hashtable переменной Dictionary.

Вот часть моего кода 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' в 'строку'

Как передать всю переменную openWith в AppendDataCT? AppendDataCT - это метод, который вызывает мой хранимый процесс SQL. Я хочу передать всю строку, где каждая строка имеет уникальный набор значений, которые я хочу добавить в свою таблицу базы данных. Например, если для каждой строки требуются значения для ячеек A, B и C, я хочу передать эти 3 значения в AppendDataCT, где все эти значения являются строками. Как мне сделать это с помощью словаря?

1 Ответ

1 голос
/ 07 июня 2010

проблема не в вашем словаре, а в том, как вы его передаете. проблема в вашем методе AppendDataCT, он ожидает параметр string, а не dictionary<string,string>

при условии, что вы, вероятно, хотите что-то вроде этого ...

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

это будет повторяться по вашему словарю и для каждой пары [ключ, значение] вызовите ваш метод AppendDataCT, используя значение из пары.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...