I have the following set of code:
using (OracleConnection conn = new OracleConnection(m_fceConn))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand(m_sql, conn))
{
using (OracleDataReader reader = cmd.ExecuteReader())
{
reader.Read();
}
}
conn.Close();
}
Is there a better way to format this? Granted, later on I will probably be breaking out opening a connection, running a query, and closing the connection into separate functions at a later date but this nesting will still be there “behind the scenes” so to speak.
I read on another thread that I could format things like so:
using (OracleConnection conn = new OracleConnection(m_fceConn))
using (OracleCommand cmd = new OracleCommand(m_sql, conn))
But considering that I have code in between each of these statements I don’t believe that I can omit the brackets like that. I’m just looking for the best/safest practice here since I’m still realtively new/noob to C#. Thanks.
I could be wrong, but I don’t think you need to open the connection before passing it to OracleCommand. You just have to open it prior to executing a command. So you could write the above as:
(you also shouldn’t need to explicitly close either since disposing of the connection should close it automatically).
There’s nothing special about the above code (other than it looks nice), it’s just using normal C# rules that apply single commands to such blocks. it’s the same as this:
it’s just that you’re “stacking” multiple single statements.