Я имею эту простую функцию, которая берет на себя все запросы:Нужно ли мне закрыть DataReader
DataTable ReadIt(string query, params MySqlParameter[] sqlParams)
{
DataTable dt = new DataTable();
using(MySqlConnection myConnection = new MySqlConnection(sConnection))
{
myConnection.Open();
MySqlCommand myCommand = myConnection.CreateCommand();
myCommand.CommandText = query;
foreach (var p in sqlParams)
{
myCommand.Parameters.Add(p);
}
MySqlDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection);
dt.Load(myReader);
myReader.Close();
}
return dt;
}
мне нужно поставить myReader.Close();
после загрузки данных в DataTable или же читатель закрывается автоматически после того, как Do using
?
Что использовать? Я не вижу использования, которое содержит читателя в качестве ресурса. – TomTom
@TomTom Я думаю, что он означает, что он закрывается автоматически после блока 'use' для' MySqlConnection' –
@ Корнуэлл, что «CommandBehavior.CloseConnect» предназначен для закрытия соединения, когда Reader закрыт, а не наоборот. В целом, это хорошая идея, чтобы убедиться, что вы закрываете/распоряжаетесь, когда закончите с ними. –