0
如果執行失敗,哪個更好地確保db連接已關閉?try catch中的數據庫連接關閉位置/使用
try
{
using (var mySqlConnection = new MySqlConnection(DatabaseManagement.DatabaseConnectionString))
{
DatabaseManagement.DatabaseCommand = mySqlConnection.CreateCommand();
DatabaseManagement.DatabaseCommand.CommandText = "INSERT INTO lastlaptimes Values ('" + UserObject.UserName + "','" + _lastLapTime + "')";
mySqlConnection.Open();
DatabaseManagement.DatabaseCommand.ExecuteNonQuery();
}
}
catch (MySqlException exception)
{
Logger.Error(exception);
}
或者這樣:
using (var mySqlConnection = new MySqlConnection(DatabaseManagement.DatabaseConnectionString))
{
try
{
DatabaseManagement.DatabaseCommand = mySqlConnection.CreateCommand();
DatabaseManagement.DatabaseCommand.CommandText = "INSERT INTO lastlaptimes Values ('" + UserObject.UserName + "','" + _lastLapTime + "')";
mySqlConnection.Open();
DatabaseManagement.DatabaseCommand.ExecuteNonQuery();
}
catch (MySqlException exception)
{
mySqlConnection.Close();
Logger.Error(exception);
}
}
我遇到的問題與對數據庫連接過多,而且,我想知道如果我的第一種方法是導致問題的連接作爲代碼被稱爲無數次,並打開一個新的連接,並再次失敗,並增加連接1.
感謝您的任何幫助。
我會更擔心sql注入 – Steve
我會擔心異常被吞噬,當有人未能得到正確的注射攻擊時。 –
@TonyHopkinson你說得對,我誤解了他的問題。至少你管理這個例外。但這取決於你是否想寫更多或更少的代碼。使用SQL參數化來避免注入。 –