В целях создания хорошего кода я проверил свой проект в Visual Studio 2010 с помощью «Выполнить анализ кода».В приведенной ниже функции я получаю следующее предупреждение, которое я не понимаю, потому что единственная строка, которая может генерировать исключение, является sqlC.ExecuteNonQuery () , с only типом исключения " SQLException".
CA2000: Microsoft.Reliability: В методе« Company.log (строка, строка, DateTime, DateTime, строка, bool) »объект« sqlC »не удаляетсявдоль всех путей исключения.Вызовите System.IDisposable.Dispose для объекта 'sqlC' до того, как все ссылки на него выйдут из области видимости.
Почему Анализ жалуется?Любая помощь очень ценится!
private void log(string type, string descr, DateTime start, DateTime end, string msg, bool success)
{
SqlCommand sqlC = new SqlCommand();
sqlC.CommandType = CommandType.Text;
sqlC.Connection = sc;
sqlC.CommandText = "INSERT INTO [cap_jobHistoryDetails] (...) VALUES(...)";
sqlC.Parameters.AddWithValue("@jobID", _job_id.ToString("d", CultureInfo.InvariantCulture));
sqlC.Parameters.AddWithValue("@type", type);
sqlC.Parameters.AddWithValue("@start", start);
sqlC.Parameters.AddWithValue("@end", end);
sqlC.Parameters.AddWithValue("@descr", descr);
sqlC.Parameters.AddWithValue("@msg", msg);
sqlC.Parameters.AddWithValue("@success", (success ? "1" : "0"));
try
{
sqlC.ExecuteNonQuery();
}
catch (SqlException)
{
sqlC.Dispose();
throw;
}
sqlC.Dispose();
}