Confused using “using” Statement C#

Согласно Библиотека MSDN

using Statement (Справочник по C #)
Определяет область, за пределами которой объект или объекты будут удалены.

Но я получил этот код, размещенный здесь каким-то пользователем, и я запутался в этом: (см. Мой комментарий к коду)

using (OleDBConnection connection = new OleDBConnection(connectiongString))
           {
                if (connection.State != ConnectionState.Open)
                    connection.Open();
                string sql = "INSERT INTO Student (Id, Name) VALUES (@idParameter, @nameParameter)";

                using (OleDBCommand command = connection.CreateCommand())
                {
                    command.CommandText = sql;
                    command.CommandType = CommandType.Text;

                    OleDBParameter idParameter = command.CreateParameter();
                    idParameter.DbType = System.Int32;
                    idParameter.Direction = Parameterdirection.Input;
                    idParameter.Name = "@idParameter";
                    idParameter.Value = studentId; 

                    OleDBParameter nameParameter = command.CreateParameter();
                    try
                    {
                        command.ExecuteNonQuery();
                    }
                    finally
                    {
                        // Is it still necessary to dispose these objects here?
                        command.Dispose();
                        connection.Dispose();
                    }
                }
            }

В приведенном выше код, правильно ли используется оператор using ? Я запутался, может ли кто-нибудь объяснить, как использовать с помощью оператора и его область действия, а также когда, где и почему его использовать. Спасибо ..

12
задан shahjapan 26 October 2010 в 08:16
поделиться