Нет проблемы "безопасности" со статическим методом.Ваш коллега в замешательстве.Должен ли написанный вами код быть статическим или методы экземпляра зависят от того, что именно он делает.Но использование их в качестве статических методов не является «опасным».
Я предлагаю вам отследить запрос, который вызывает проблему, поскольку статический метод, безусловно, не является проблемой.
Наскольковаше соединение идет, я бы не рекомендовал хранить его как статическую переменную.Я предполагаю, что это SqlConnection или что-то подобное.В этом случае, если вы сохраняете это как статическую переменную, возможно следующее:
- Ваше соединение никогда не закрывается, даже после того, как вы закончили его использовать.
- У вас будут проблемы, если у вас есть несколько запросов, пытающихся использовать соединение одновременно.
Поэтому я рекомендую использовать следующий шаблон, чтобы ваши соединения оставались открытыми только до тех пор, пока они
public void DoSomething()
{
//Doing some work that doesn't need a connection.
//Now ready to submit or fetch data from the database.
using (SqlConnection connection = new SqlConnection(...))
{
using (SqlCommand command = new SqlCommand(..., connection))
{
//Now, working with the connection and command.
}
}
//Done with the connection, doing more work now.
}
Оператор using работает со всем, что является IDisposable
.Ваша переменная connection
будет автоматически закрыта и уничтожена в закрывающей скобке оператора using
.Я рекомендую вам использовать его для всего, что вы можете.Stream
с, SqlConnection
с, Font
с и т. Д.