2016-05-07 2 views
2

Я хочу назначить динамический параметр значения через массив. Например, массив arr_param будет содержать два значения [0] = "abc", [1] = "ZYX" .Теперь, я присвою их .The проблема здесь состоит в том, что я должен указать правильные элементы [0], [1] после выполнения Еогеаспа, я пытался это сделать, но не обращенный в целоеКак передать параметр из массива в C#?

string[] arr_param = array_parameter.Split(';'); 
foreach (DataRow parmRow in parmsDataTable.Rows) 
{ 
    string parmName = parmRow[parmNameDataColumn].ToString(); 
    cmd.Parameters.AddWithValue(parmName, arr_param[Convert.ToInt32(parmsDataTable.Rows)]); 
} 

Я получаю ошибку Unable to cast object of type 'System.Data.DataRowCollection' to type 'System.IConvertible'.

+1

Вы получаете это исключение из этой строки: cmd.Parameters.AddWithValue (parmName, arr_param [Convert.ToInt32 (parmsDataTable.Rows)]); Вы пытаетесь преобразовать коллекцию DataRow, которая является parmsDataTable.Rows для типа Int32. Вы не можете сделать это преобразование. – CodeNotFound

ответ

1

parmsDataTable.Rows является DataRowCollection и не может быть преобразован в int.

Простой Решение:

string[] arr_param = array_parameter.Split(';'); 
int counter = 0; 
foreach (DataRow parmRow in parmsDataTable.Rows) 
{ 
    string parmName = parmRow[parmNameDataColumn].ToString(); 
    cmd.Parameters.AddWithValue(parmName, arr_param[counter++)]); 
} 

Или:

string[] arr_param = array_parameter.Split(';'); 
foreach (DataRow parmRow in parmsDataTable.Rows) 
{ 
    string parmName = parmRow[parmNameDataColumn].ToString(); 
    cmd.Parameters.AddWithValue(parmName,arr_param[parmsDataTable.Rows.IndexOf(parmRow))]); 
} 
+0

ой, два пути работают, и я думаю, что первый способ легче понять, потому что это понятно. Большое вам спасибо. –

Смежные вопросы