如果执行失败,确保数据库连接关闭的方法更好?
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。
谢谢你的帮助
两者之间的唯一区别是是否显式调用Close
语句(两者都有一个using
语句,它会自动运行Dispose
)。
所以这里真正的问题是—Dispose
关闭连接还是需要显式调用它?我相信答案是Dispose
会为你调用这个(见这个问题)。这意味着要么工作良好-选择您喜欢的(我想第一个技术上是一行代码…)