我想通过数组分配一个值参数dynamic。
例如,数组arr_param
将包含两个值[0] = "abc"
,[1] = "ZYX"
。现在,我将分配它们。这里的问题是我必须在运行foreach之后指定正确的元素[0]
,[1]
,我尝试了但是无法转换为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)]);
}
我收到错误Unable to cast object of type 'System.Data.DataRowCollection' to type 'System.IConvertible'
。
答案 0 :(得分: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))]);
}