2016-05-07 4 views
2

値の動的配列を配列に割り当てる必要があります。 例えば、配列arr_paramが、私はそれらを割り当てます、2つの値[0] = "abc"[1] = "ZYX" .Nowが含まれていますここで【選択問題は、私は[0][1]実行foreachの後に正しい要素を指定しなければならないということですが、私はそれを行う試みたが、int型に変換に失敗しました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

シンプルソリューション:

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型に変換しようとしています。その変換はできません。 – CodeNotFound

答えて

1

parmsDataTable.RowsDataRowCollectionであり、intには変換できません。あなたがあるため、この行のこの例外を取得

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

ああ、2つの方法が働いていて、私は最初のやり方が分かりやすいので分かりやすいと思います。本当にありがとうございます。 –

関連する問題