Несколько вещей выделяются:
Вы не показываете, где создается экземпляр SqlConnection, поэтому не ясно, правильно ли вы его утилизируете.
Не следует глотать исключения в цикле - лучше обрабатывать их в обработчике исключений верхнего уровня.
Вы создаете новые параметры на каждой итерации в цикле - вы можете просто повторно использовать параметры.
Если сложить все это вместе, это может выглядеть примерно так (если вы не хотите использовать транзакцию, т.е. не волнует, если некоторые, но не все обновления завершатся успешно):
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlCommand updateCommand = new SqlCommand(update, conn))
{
string uid = Session["uid"].ToString();
updateCommand.Parameters.AddWithValue("@ID", uid);
updateCommand.Parameters.AddWithValue("@qnum", i);
updateCommand.Parameters.Add("@answer", System.Data.SqlDbType.VarChar);
for (int i = tempStart; i <= tempEnd; i++)
{
updateCommand.Parameters["@answer"] = Request.Form[i.ToString()];
updateCommand.ExecuteNonQuery();
}
}
}
Или использовать транзакцию, чтобы обеспечить все или ничего:
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
using (SqlTransaction transaction = conn.BeginTransaction())
{
using (SqlCommand updateCommand = new SqlCommand(update, conn, transaction))
{
string uid = Session["uid"].ToString();
updateCommand.Parameters.AddWithValue("@ID", uid);
updateCommand.Parameters.AddWithValue("@qnum", i);
updateCommand.Parameters.Add("@answer", System.Data.SqlDbType.VarChar);
for (int i = tempStart; i <= tempEnd; i++)
{
updateCommand.Parameters["@answer"] = Request.Form[i.ToString()];
updateCommand.ExecuteNonQuery();
}
transaction.Commit();
}
} // Transaction will be disposed and rolled back here if an exception is thrown
}
Наконец, еще одна проблема заключается в том, что вы смешиваете код пользовательского интерфейса (например, Request.Form) с кодом доступа к данным. Было бы более модульным и тестируемым, чтобы отделить их - например, разделив ваше приложение на уровни пользовательского интерфейса, бизнес-логики и доступа к данным.