Выполнение команды, выполняющую операцию с каталогом



Добавьте новую функциональность – возможность выполнить команду для создания новой таблицы в базе данных. Для выполнения такой операции необходимо применить метод ExecuteNonQuery() объекта Command.         

1.  Добавьте на форму новую кнопку. Установите свойству Text значение Создание таблицы.

2. Добавьте на форму новый объект SqlCommandна форму. В результате в приложении, будет создан объект SqlCommand3.

3. В окне Properties объекта SqlCommand3 укажите для свойства Connection значение SqlConnection1.

4. Реализуйте в обработчике события Click требуемую функциональность, учитывая, что для выполнения команды, запускающей выражения SQL вызывается метод ExecuteNonQuery() и нет необходимости использовать SqlDataReader, поскольку команда не возвращает никаких данных.

5. В итоге обработчик события Click будет выглядеть следующим образом:

   sqlCommand3.CommandType = CommandType.Text;

   sqlCommand3.CommandText = "CREATE TABLE SalesPersons (" +

          "[SalesPersonID] [int] IDENTITY(1,1) NOT NULL, " +

          "[FirstName] [nvarchar](50) NULL, " +

          "[LastName] [nvarchar](50) NULL)";

   sqlCommand3.Connection.Open();

   sqlCommand3.ExecuteNonQuery();

   sqlCommand3.Connection.Close();

   MessageBox.Show("Таблица SalesPersons создана");

6. Запустите и протестируйте приложение. В окне Server Explorer  проверьте, что таблица успешно добавлена.

7.  Попробуйте повторно добавить таблицу. Должно сгенерироваться исключение. Нажмите Продолжить и попробуйте выполнить предыдущую хранимую процедуру.  Должно снова сгенерироваться исключение, так как соединение с базой данных не было закрыто.

8. Реализуйте обработчик исключительной ситуации с возможностью определения типа исключения. Перенесите в блок finally код для закрытия соединения.

Выполнение запроса с параметром

Добавьте в приложение возможность пользователю выполнить параметризованный запрос на выборку данных.

1. Добавьте на форму TextBox и установите свойству Name значение CityTextBox, а свойству Text – London.

2. Добавьте на форму новую кнопку и установите свойству Text значение Запрос с параметром.

3. Добавьте на форму новый объект SqlCommandна форму. В результате в приложении, будет создан объект SqlCommand4.

4. В окне Properties объекта SqlCommand4 укажите для свойства Connection значение SqlConnection1.

5. В окне Properties укажите для свойства CommandText объекта SqlCommand4 значение, содержащее запрос на выборку данных с параметром:

SELECT CustomerID, CompanyName, City FROM Customers WHERE City = @City

6. В окне Properties для свойства Parameters откройте окно добавления параметров. Проверьте, что в окне редактора коллекции автоматически добавлен параметр (если не добавлен, то добавьте самостоятельно) @City, для SqlDbType установите значение NVarChar.  

7. Реализуйте в обработчике события Click требуемую функциональность по аналогии с простым запросом и перед открытием соединения задайте параметру значение, введенное в текстовое поле:

sqlCommand4.Parameters["@City"].Value = CityTextBox.Text;

8. В итоге обработчик события Click будет выглядеть следующим образом:

System.Text.StringBuilder results = new System.Text.StringBuilder();

       sqlCommand4.CommandType = CommandType.Text;

       sqlCommand4.Parameters["@City"].Value = CityTextBox.Text;

       sqlConnection1.Open();

       SqlDataReader reader = sqlCommand4.ExecuteReader();

       bool MoreResults = false;

       do

       {

           while (reader.Read())

           {

               for (int i = 0; i < reader.FieldCount; i++)

               {

                   results.Append(reader[i].ToString() + "\t");

               }

               results.Append(Environment.NewLine);

           }

           MoreResults = reader.NextResult();

       } while (MoreResults);

       reader.Close();

       sqlCommand4.Connection.Close();

       ResultsTextBox.Text = results.ToString();

9. Запустите и протестируйте приложение. Введите в поле запроса Madrid и повторно выполните запрос.

Выполнение параметризованной хранимой процедуры

Реализуйте функциональность для выполнения команды, которая запускает параметризованную хранимую процедуру «SalesByCategory».           

1. Добавьте на форму новую кнопку и установите свойству Text значение Процедура с параметром.

2. Добавьте на форму TextBox и установите свойству Name значение CategoryNameTextBox, а свойству Text – Beverages.

3. Добавьте еще TextBox и установите свойству Name значение OrdYearTextBox, а свойству Text – 1997.

4. Добавьте на форму новый объект SqlCommandна форму. В результате в приложении, будет создан объект SqlCommand5.

5. В окне Properties объекта SqlCommand5 укажите:

a. для свойства Connection значение SqlConnection1.

b. для свойства CommandType значение StoredProcedure.

c. для свойства CommandText имя хранимой процедуры: SalesByCategory.

6. На вопрос о создании коллекции Parameters ответьте Да.

7. В окне Properties для свойства Parameters откройте окно добавления параметров. Проверьте, что в окне редактора коллекции автоматически добавлены параметры @CategoryName и @OrdYear.

8. Реализуйте в обработчике события Click требуемую функциональность по аналогии с простой процедурой и перед открытием соединения задайте параметрам значения, вводимые в текстовые поля:

sqlCommand5.Parameters["@CategoryName"].Value = CategoryNameTextBox.Text;

sqlCommand5.Parameters["@OrdYear"].Value = OrdYearTextBox.Text;

9. В итоге обработчик события Click будет выглядеть следующим образом:

System.Text.StringBuilder results = new System.Text.StringBuilder();

sqlCommand5.Parameters["@CategoryName"].Value = CategoryNameTextBox.Text;

sqlCommand5.Parameters["@OrdYear"].Value = OrdYearTextBox.Text;

       sqlCommand5.Connection.Open();

       SqlDataReader reader = sqlCommand5.ExecuteReader();

       while (reader.Read())

       {

           for (int i = 0; i < reader.FieldCount; i++)

           {

               results.Append(reader[i].ToString() + "\t");

           }

           results.Append(Environment.NewLine);

       }

       reader.Close();

       sqlCommand5.Connection.Close();

       ResultsTextBox.Text = results.ToString();

10. Запустите приложение и протестируйте его. Введите имя другой категории, например, Condiments, Seafood, Produce или другой год, например, 1998.

Работа в отключенной среде

В данном модуле рассматривается главный элемент автономной архитекту­ры ADO.NET – класс DataSet. Этот класс позволяет загрузить из источника часть данных и работает как контейнер данных, обеспечивающий реляционную структуру автономной природы и механизм хранения данных, который не зависит от источника данных. Помимо обеспечения интуитивного и легкого до­ступа к данным, DataSet также хранит историю изменений вплоть до изменений отдельных ячеек, реализовывая, таким образом, параллельную работу и сохранение изменений обратно в источник данных.


Дата добавления: 2019-02-26; просмотров: 200; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!