Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Тут можно читать онлайн Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2007
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    ISBN 5-8459-1124-9
  • Рейтинг:
    3.2/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 60
    • 1
    • 2
    • 3
    • 4
    • 5

Эндрю Троелсен - ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание краткое содержание

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - описание и краткое содержание, автор Эндрю Троелсен, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

В этой книге содержится описание базовых принципов функционирования платформы .NET, системы типов .NET и различных инструментальных средств разработки, используемых при создании приложений .NET. Представлены базовые возможности языка программирования C# 2005, включая новые синтаксические конструкции, появившиеся с выходом .NET 2.0, а также синтаксис и семантика языка CIL. В книге рассматривается формат сборок .NET, библиотеки базовых классов .NET. файловый ввод-вывод, возможности удаленного доступа, конструкция приложений Windows Forms, доступ к базам данных с помощью ADO.NET, создание Web-приложений ASP.NET и Web-служб XML. Книга содержит множество примеров программного кода, призванного помочь читателю в освоении предлагаемого материала. Программный код примеров можно загрузить с Web-сайта издательства.

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать онлайн бесплатно полную версию (весь текст целиком)

ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - читать книгу онлайн бесплатно, автор Эндрю Троелсен
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

}

Console.WriteLine() ;

}

После компиляции и запуска этого проекта вы должны увидеть список всех автомобилей из таблицы Inventory базы данных Cars (рис. 22.7).

Рис 227 Объекты чтения данных Получение множества наборов результатов с - фото 321

Рис. 22.7. Объекты чтения данных

Получение множества наборов результатов с помощью объектов чтения данных

Объекты чтения данных могут получать от одного объекта команды множество наборов результатов. Например, чтобы получить все строки таблицы Inventory и все строки таблицы Customers, можно указать оба соответствующих SQL-оператора, используя в качестве разделителя точку с запятой.

string theSQL = "Select * From Inventory:Select * "from Customers";

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

do {

while (myDataReader .Read()) {

// Чтение информации текущего набора результатов.

}

} while (myDataReader .NextResult());

Теперь вы должны знать больше о возможностях объектов чтения данных. Эта объекты предлагают и другие возможности, о которых здесь не упоминалось (например, выполнение скалярных и однострочных запросов). Соответствующие подробности можно найти в документации .NET Framework 2.0 SDK.

Исходный код. Проект CarsDataReader размещен в подкаталоге, соответствующем главе 22.

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

Вы только что убедились, что метод 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();

}

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

Вставка новых записей

Для вставки новой записи в таблицу Inventory нужно (на основе пользовательского ввода) создать SQL-оператор вставки и вызвать ExecuteNonQuery(). Чтобы не загромождать программный код, здесь из него удалена необходимая программная логика try/catch, которая присутствует в загружаемом варианте программного кода примеров для этой книги.

private static void InsertNewCar(SqlConnection cn) {

// Сбор информации о новой машине.

Console.Write("Введите номер машины: ");

int newCarID = int.Parse(Console.ReadLine());

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

string newCarMake = Console.ReadLine();

Console.Write("Введите цвет: ");

string newCarColor = Console.ReadLine();

Console.Write("Введите название: ");

string newCarPetName = Console.ReadLine();

// Создание и выполнение оператора SQL.

string sql = string.Format("Insert Into Inventory" +

"(CarID, Make, Color, PetName) Values" +

"({0}', '{1}', '{2}', '{3}')",

newCarID, newCarMake, newCarColor, newCarPetName);

SqlCommand cmd = new SqlCommand(sql, cn);

cmd.ExecuteNonQuery();

}

Замечание.Вы, возможно, знаете, что построение SQL-операторов с помощью конкатенации строк достаточно рискованно с точки зрения безопасности (вспомните о возможных атаках SQL-инъекции). Здесь этот подход используется только для простоты, поскольку, конечно же, предпочтительнее строить текст команд с помощью параметризованных запросов, обсуждение которых предполагается немного позже.

Удаление записей

Удалить существующую запись так же просто, как и вставить новую. Но, в отличие от программного кода для InsertNewCar(), ниже демонстрируется важная возможность применения try/catch для обработки попытки удаления автомобиля, используемого в настоящий момент в процессе оформления заказа для покупателя из таблицы Customers (сама эта таблица будет рассмотрена в этой главе позже).

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Эндрю Троелсен читать все книги автора по порядку

Эндрю Троелсен - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание отзывы


Отзывы читателей о книге ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание, автор: Эндрю Троелсен. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x