C # e SQL Server: a inserção / atualização é realmente executada apenas na depuração
Eu tenho uma API bastante simplista para adicionar e, posteriormente, atualizar uma pequena tabela no SQL Server. Ele será inserido (ou atualizado, que exibe o mesmo comportamento estranho) quando eu entrar no meu código de acesso a dados no depurador, mas não quando eu passar pelo mesmo código. Certamente, eu perdi algo óbvio ...
int result = 0;
const string sql = "INSERT into MyProgress (ImportJobId, SiteCode, ProcessedAmount, TotalToProcess, ErrorCount, CreatedDateTime, LastModifiedDateTime) " +
"VALUES (@importJobId, @siteCode, @currentProgress, @totalPieces, 0, getdate(), getdate())";
using (var connection = GetSqlConnection())
using (var sqlCmd = GetSqlCommand(connection, sql))
{
sqlCmd.Parameters.AddWithValue("@importJobId", importJobId);
sqlCmd.Parameters.AddWithValue("@siteCode", siteCode);
sqlCmd.Parameters.AddWithValue("@currentProgress", currentProgress);
sqlCmd.Parameters.AddWithValue("@totalPieces", totalPieces);
//SqlParameter outputParameter = new SqlParameter("@ID", SqlDbType.Int, 4);
//outputParameter.Direction = ParameterDirection.InputOutput;
//sqlCmd.Parameters.Add(outputParameter);
sqlCmd.BeginExecuteNonQuery();
//result = (int) (outputParameter.Value ?? -1);
}
return result;
Para os curiosos,GetSqlConnection()
se parece com isso:
SqlConnection connection = new SqlConnection(_ConnectionString);
connection.Open();
return connection;