В каждом опросе есть несколько вопросов (10), и у каждого вопроса есть свой рейтинг.На данный момент я могу вставить оценку по каждому вопросу по одному.Я пытаюсь создать одну форму, чтобы я мог добавить оценку к каждому вопросу одновременно.
Проблема, с которой я сталкиваюсь, заключается в том, что форма вводит оценку только для первого вопроса и запускаетво второй экземпляр: 'throw new ApplicationException ("Ошибка данных.");'
Каждый вопрос должен содержать выбранный идентификатор опроса, чтобы определить, к какому опросу он принадлежит.* ===== Код позади =====
protected void AddRatingBTN_Click(object sender, EventArgs e)
{
if (DropDownListSurvey.SelectedValue == "Select")
{
//Label1.Text = "hi";
return;
}
string connectionString = WebConfigurationManager.ConnectionStrings["DBConnectionString1"].ConnectionString;
SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("InsertRating", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Rating_ID", SqlDbType.Int, 7));
cmd.Parameters["@Rating_ID"].Direction = ParameterDirection.Output;
cmd.Parameters.Add(new SqlParameter("@Question_ID", SqlDbType.Int));
cmd.Parameters["@Question_ID"].Value = 1000;
cmd.Parameters.Add(new SqlParameter("@Survey_ID", SqlDbType.Int));
cmd.Parameters["@Survey_ID"].Value = Convert.ToInt32(DropDownListSurvey.SelectedValue.ToString());
cmd.Parameters.Add(new SqlParameter("@Score", SqlDbType.Char, 5));
cmd.Parameters["@Score"].Value = Question_1.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
// txtRating_ID.Text = Convert.ToString(cmd.Parameters["@Rating_ID"].Value);
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error.");
}
finally
{
con.Close();
}
cmd.Parameters.Add(new SqlParameter("@Rating_ID", SqlDbType.Int, 7));
cmd.Parameters["@Rating_ID"].Direction = ParameterDirection.Output;
cmd.Parameters.Add(new SqlParameter("@Question_ID", SqlDbType.Int));
cmd.Parameters["@Question_ID"].Value = 1001;
cmd.Parameters.Add(new SqlParameter("@Score", SqlDbType.Char, 5));
cmd.Parameters["@Score"].Value = Question_2.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
// txtRating_ID.Text = Convert.ToString(cmd.Parameters["@Rating_ID"].Value);
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error.");
}
finally
{
con.Close();
}
cmd.Parameters.Add(new SqlParameter("@Rating_ID", SqlDbType.Int, 7));
cmd.Parameters["@Rating_ID"].Direction = ParameterDirection.Output;
cmd.Parameters.Add(new SqlParameter("@Question_ID", SqlDbType.Int));
cmd.Parameters["@Question_ID"].Value = 1002;
cmd.Parameters.Add(new SqlParameter("@Score", SqlDbType.Char, 5));
cmd.Parameters["@Score"].Value = Question_3.Text;
try
{
con.Open();
cmd.ExecuteNonQuery();
// txtRating_ID.Text = Convert.ToString(cmd.Parameters["@Rating_ID"].Value);
}
catch (SqlException err)
{
// Replace the error with something less specific.
// You could also log the error now.
throw new ApplicationException("Data error.");
}
finally
{
Response.Redirect(Request.RawUrl);
con.Close();
}
}
}
}