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