如何在c#中从数组传递参数?

如何在c#中从数组传递参数?,c#,arrays,datarow,C#,Arrays,Datarow,我想通过数组动态分配一个值参数。 例如,数组arr_param将包含两个值[0]=“abc”,[1]=“ZYX” 。现在,我将分配它们。这里的问题是,我必须指定正确的元素[0],[1],在运行foreach后,我尝试执行此操作,但无法转换为int string[] arr_param = array_parameter.Split(';'); foreach (DataRow parmRow in parmsDataTable.Rows) { string parmName = pa

我想通过数组动态分配一个值参数。 例如,数组
arr_param
将包含两个值
[0]=“abc”
[1]=“ZYX”
。现在,我将分配它们。这里的问题是,我必须指定正确的元素
[0]
[1]
,在运行foreach后,我尝试执行此操作,但无法转换为int

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)]);
}

我收到错误
无法将类型为'System.Data.DataRowCollection'的对象强制转换为类型为'System.IConvertible'

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++)]);
}
或:


由于这一行,您得到了这个异常:cmd.Parameters.AddWithValue(parmName,arr_param[Convert.ToInt32(parmsDataTable.Rows)];您正在尝试将parmsDataTable.Rows的DataRow集合转换为Int32类型。你不能这样转换。哦,两种方法都有效,我认为第一种方法更容易理解,因为它很清楚。非常感谢。
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))]);
}