ADO.NET: Does ExecuteScalar close the connection automatically?
-
14-09-2020 - |
Question
Does ExecuteScalar close the connection automatically?
Solution
No, you need to explicitly open and close the connection when using ExecuteScalar().
OTHER TIPS
You could create an overload using an extension method though I'm not sure if it's a good idea.
public static object ExecuteScalar(this IDbCommand Command, bool CloseConnetion)
{
(if Command == null)
throw new NullReferenceException();
object obj = null;
try
{
obj = Command.ExecuteScalar();
}
finally
{
if(CloseConnection && Command.Connection.State != ConnectionState.Closed)
Command.Connection.Close();
}
return obj;
}
That depends.
One can write an implementation of IDbCommand
that will close the connection.
But as far as I know the provided implementations does not close the connection.
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow