I have a piece of code
await this._Conn.OpenAsync();
using (SqlCommand cmd = new SqlCommand("AddOrUpdateAnswer", this._Conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@AnswerVal", Answer.AnswerVal);
cmd.Parameters.AddWithValue("@QuestionId", Answer.QuestionId);
cmd.Parameters.AddWithValue("@PartnerId", Answer.PartnerId);
await cmd.ExecuteNonQueryAsync();
}
this._Conn.Close();
which is currently not inside a loop but now I want to run in inside a loop. My question is whether I should write it like
for ( var Answer in Answers )
{
await this._Conn.OpenAsync();
using (SqlCommand cmd = new SqlCommand("AddOrUpdateAnswer", this._Conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@AnswerVal", Answer.AnswerVal);
cmd.Parameters.AddWithValue("@QuestionId", Answer.QuestionId);
cmd.Parameters.AddWithValue("@PartnerId", Answer.PartnerId);
await cmd.ExecuteNonQueryAsync();
}
this._Conn.Close();
}
or can I have it opened for the entirety of the loop like
await this._Conn.OpenAsync();
for ( var Answer in Answers )
{
using (SqlCommand cmd = new SqlCommand("AddOrUpdateAnswer", this._Conn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@AnswerVal", Answer.AnswerVal);
cmd.Parameters.AddWithValue("@QuestionId", Answer.QuestionId);
cmd.Parameters.AddWithValue("@PartnerId", Answer.PartnerId);
await cmd.ExecuteNonQueryAsync();
}
}
this._Conn.Close();
Why or why not?