我后台程序中有以下代码:其中strID 是一个字符串数组。SP_UpdateStudentRole是存储过程名。
SqlParameter[] prams1=new SqlParameter[4];
prams1[0]=new SqlParameter("@stu_currentRole",SqlDbType.Char,2);
prams1[1]=new SqlParameter("@stu_role",SqlDbType.Char,10);
prams1[2]=new SqlParameter("@inputRole",SqlDbType.Char,10);
prams1[3]=new SqlParameter("@inputID",SqlDbType.VarChar,500);
prams1[2].Value="'已分配'";

for(int i=0;i<7;i++)
{
    prams1[0].Value=(i+3);
    prams1[1].Value="stu_role"+(i+3);
    prams1[3].Value=strID[i];
    SqlConnection con = new SqlConnection(ConfigurationSettings.AppSettings              ["ConnectionString"]);
    SqlCommand cmd = new SqlCommand("SP_UpdateStudentRole", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add(prams1[0]);
    cmd.Parameters.Add(prams1[1]);
    cmd.Parameters.Add(prams1[2]);
    cmd.Parameters.Add(prams1[3]);    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
}
提示的错误信息:
另一个 SqlParameterCollection 已包含带有 ParameterName“@stu_currentRole”的 SqlParameter。
我估计是for循环造成的,因为我去掉for循环后就成功了,但我想循环来执行更新操作,请问如何改正才能避免错误!