Изменение содержимого таблиц с помощью объектов команд

Изменение содержимого таблиц с помощью объектов команд

Вы только что убедились, что метод ExecuteReader() извлекает объект чтения данных, позволяющий проверить результаты выполнения SQL-оператора Select в однонаправленном и доступном только для чтения потоке. Но если вы хотите применить SQL-команду, в результате которой должна произойти модификация таблицы, вы должны вызвать метод ExecuteNonQuery() соответствующего объекта команды. Этот метод выполняет вставки, обновления и. удаления в соответствии с форматом соответствующей команды.

Чтобы проиллюстрировать возможность модификации существующей базы данных с помощью вызова ExecuteNonQuery(), мы с вами построим новое консольное приложение (CarsInventoryUpdater), предоставляющее пользователю возможность изменения данных таблицы Inventory базы данных Cars. Как и в других примерах, метод Main() здесь отвечает за получение от пользователя инструкций по поводу выполнения конкретных действий, что программно реализуется с помощью оператора switch. Программа разрешает пользователю ввести следующие команды:

• I - вставить новую запись в таблицу Inventory;

• U - обновить существующую запись в таблице Inventory;

• D – удалить существующую запись из таблицы Inventory;

• L – вывести информацию об имеющемся наборе автомобилей, используя объект чтения данных;

• S – показать эти варианты выбора пользователю;

• Q - выйти из программы.

Каждый возможный вариант обрабатывается своим уникальным статическим методом в рамках класса Program. Для полной ясности вот реализация Main(), которая, как кажется, не требует никаких дополнительных комментариев.

static void Main(string[] args) {

 Console.WriteLine ("***** Модификатор Inventory для Car *****");

 bool userDone = false;

 string userCommand = "";

 SqlConnection cn = new SqlConnection();

 cn.ConnectionString = "uid=sa;pwd=;Initial Catalog=Cars;" +

  "Data Source=(local);Connect Timeout=30";

 cn.Open();

 ShowInstructions();

 do {

  Console.Write("Введите команду: ");

  userCommand = Console.ReadLine();

  Console.WriteLine();

  switch (userCommand.ToUpper()) {

  case "I":

   InsertNewCar(cn);

   break;

  case "U":

   UpdateCarPetName(cn);

   break;

  case "D":

   DeleteCar(cn);

   break;

  case "L":

   ListInventory(cn);

   break;

  case "S":

   ShowInstructions();

   break;

  case "Q":

   userDone = true;

   break;

  default:

   Console.WriteLine("Некорректные данные! Введите другие");

   break;

  }

 } while (!userDone);

 cn.Close();

}

Метод ShowInstructions() делает то, что и следует ожидать.

private static void ShowInstructions() {

 Console.WriteLine();

 Console.WriteLine("I: добавление новой машины.");

 Console.WriteLine("U: модификация имеющейся машины.");

 Console.WriteLine("D: удаление имеющейся машины.");

 Console.WriteLine("L: список наличных машин.");

 Console.WriteLine("S: вывод инструкций.");

 Console.WriteLine('Q: выход из программы.");

}

Как уже упоминалось, метод ListInventorу() печатает строки таблицы Inventory с помощью объекта чтения данных (соответствующий программный код аналогичен программному коду предыдущего примера CarsDataReader).

private static void ListInventory(SqlConnection cn) {

 string strSQL = "Select * From Inventory";

 SqlCommand myCommand = new SqlCommand(strSQL, cn);

 SqlDataReader myDataReader;

 myDataReader = myCommand.ExecuteReader();

 while (myDataReader.Read()) {

  for (int i = 0; i ‹ myDataReader.FieldCount; i++) {

   Console.Write("{0} = {1}"; myDataReader.GetNаmе(i), myDataReader.GetValue(i).ToString().Trim());

  }

  Console.WriteLine();

 }

 myDataReader.Close();

}

Итак, текстовый интерфейс пользователя готов, и мы можем теперь перейти к более интересным вещам.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

A.2. Изменение и очистка ваших таблиц

Из книги Iptables Tutorial 1.1.19 автора Andreasson Oskar

A.2. Изменение и очистка ваших таблиц По мере того как вы продолжите углубляться в исследование iptables, перед вами все актуальнее будет вставать вопрос об удалении отдельных правил из цепочек без необходимости перезагрузки машины. Сейчас я попробую на него ответить. Если вы


Создание и изменение таблиц

Из книги AutoCAD 2009 автора Орлов Андрей Александрович

Создание и изменение таблиц Таблица представляет собой объект, который состоит из данных в виде строк и столбцов. Многие общие возможности электронной таблицы можно использовать в сочетании с таблицами AutoCAD.При создании таблицы в программе AutoCAD сначала следует вставить


Генерирование SQL-команд с помощью типов построителя команд

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Генерирование SQL-команд с помощью типов построителя команд Вы должны согласиться с тем, что для работы с адаптерами данных может потребоваться ввод довольно большого объема программного кода, а также создание всех четырех объектов команд и соответствующей строки


Удаление таблиц и индексов с помощью предложения DROP

Из книги Обработка баз данных на Visual Basic®.NET автора Мак-Манус Джеффри П

Удаление таблиц и индексов с помощью предложения DROP Удалять элементы базы данных можно с помощью предложения DROP. Например, чтобы удалить таблицу, используйте приведенную ниже команду SQL.DROP TABLE tblRegionС помощью предложения DROP можно также удалить индекс в таблице, как


Изменение типа содержимого

Из книги Microsoft Windows SharePoint Services 3.0. Русская версия. Главы 9-16 автора Лондер Ольга

Изменение типа содержимого Используя InfoPath 2007 изменять шаблон форм, на котором основан текущий тип содержимого. Аналогично изменению шаблона форм для одной библиотеки, важно внимательно отнестись к изменению шаблона формы содержимого типа, так как можно потерять данные


Создание и изменение таблиц

Из книги AutoCAD 2010 автора Орлов Андрей Александрович

Создание и изменение таблиц Таблица представляет собой объект, который состоит из данных в виде строк и столбцов. Многие общие возможности электронной таблицы можно использовать в сочетании с таблицами


Вставка рисунков, таблиц и других объектов

Из книги Новейший самоучитель работы на компьютере автора Белунцов Валерий

Вставка рисунков, таблиц и других объектов При работе с некоторыми текстами возникает необходимость вставить иллюстрации. Для совершения этой операции выберите в меню Вставка пункт Рисунок и далее – Из файла и откройте файл нужного рисунка. Поддерживаются все


Создание таблиц с помощью запроса

Из книги Microsoft Access 2007 автора Днепров Александр Г.

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


Изменение таблиц

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

Изменение таблиц Оператор ALTER TABLE используется для изменения структуры таблицы: добавления, изменения или удаления столбцов или ограничений. При необходимости один оператор может выполнять несколько изменений. Для выполнения ALTER TABLE вы должны быть соединены с базой


Изменение других таблиц

Из книги Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript автора Розенцвейг Гэри


Урок 22. Изменения содержимого экранас помощью клипов

Из книги Искусство программирования на языке сценариев командной оболочки автора Купер Мендель

Урок 22. Изменения содержимого экранас помощью клипов К сожалению, Flash не позволяет заменить один клип другим на рабочем поле. Единственным выходом будет удалить один клип и создать на его месте другой. Но если внешний вид клипа должен часто изменяться, необходим более


Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд #!/bin/bash# уЩЫЬ for гЯ [гаЩгЫЯЭ], гЯкФСЮЮйЭ г аЯЭЯниР аЯФгдСЮЯзЫЩ ЫЯЭСЮФ.NUMBERS="9 7 3 8 37.53"for number in `echo $NUMBERS` # for number in 9 7 3 8 37.53do echo -n "$number "doneecho exit 0Более сложный пример использования подстановки


3.2.1. Запуск команд и сценариев с помощью команды at

Из книги автора

3.2.1. Запуск команд и сценариев с помощью команды at Текст задания можно передать команде at двумя способами: в файле или в режиме командной строки at. Если задание состоит из одной команды или двух — трех команд, объединенных каналом, то удобнее воспользоваться вторым


11.1.14. Обработка результатов сортировки с помощью команд head и tail

Из книги автора

11.1.14. Обработка результатов сортировки с помощью команд head и tail При работе с большими файлами не обязательно выводить на экран весь файл, если требуется просмотреть только его начало и конец. Существуют удобные команды head и tail, упрощающие подобную задачу. Команда head


18.8. Управление ходом выполнения циклов с помощью команд break и continue

Из книги автора

18.8. Управление ходом выполнения циклов с помощью команд break и continue Иногда в процессе работы возникает необходимость в прерывании или пропуске отдельных итераций цикла. При этом применяются определенные критерии. Для обеспечения подобных возможностей интерпретатор shell