Доступ к базе данных с помощью LINQ to SQL




Лабораторная работа № 20

 

Работа с базами данных

с использованием LINQ to SQL

 

Время выполнения работы – 4 часа

 

 

 

 

Цель работы

Ознакомление с основой разработки Windows-приложений на языке C# для работы с базами данных на основе технологии ADO.NET.

Техническое обеспечение

2.1 Персональная ЭВМ IBM Pentium IV и более поздних моделей c оперативной памятью не менее 512 Мбайт.

2.2 Клавиатура.

2.3 Дисплей.

2.4 Манипулятор типа “мышь”.

Программное обеспечение

3.1 Операционная система Windows XP SP 3 более поздние версии Windows.

3.2 Система программирования Microsoft Visual Studio 2008 и более поздние версии.

Постановка задачи

Разработать Windows-приложение для однотабличной базы данных для СУБД Microsoft SQL Server, реализованной согласно варианта задания, которые приведены в методических указаниях по лабораторной работе № 19.

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

 

Доступ к базе данных с помощью LINQ to SQL

Полное описание о доступе к базам данных с помощью LINQ to SQL изложено в файле LINQ to SQL.doc.

В приведенном ниже примере вначале создается база данных городов, содержащая два поля: название города и численность его населения. Затем организуем доступ к этой базе данных с помощью LINQ to SQL и создадим запрос на извлечение коллекции городов, численность населения которых превышает миллион жителей.

Вначале запустим Visual Studio 2010 и выберем проект шаблона Windows Forms Application, укажем имя Name — LinqToSqlГopoдa. Далее, попав в конст­руктор формы, из панели элементов Toolbox (Панель элементов) перетащим элемент управления для отображения и редактирования табличных данных DataGridView, на этот элемент в конечном итоге будет попадать результат запроса.

Теперь создадим базу данных SQL Server. Для этого в меню Project (Проект) выберем команду Add New Item (Добавить новый элемент). В появившемся окне выберем элемент База данных, основанная на службах, а в поле Name укажем имя базы данных Города.mdf Далее в окне мастера настройки источника данных зададим тип модели базы данных — Набор данных. Затем согласимся на сохране­ние строки подключения в файле конфигурации приложения. Теперь после щелчка на кнопке Готово будет создан пустой набор данных. Этот набор данных Города.mdf теперь будет виден в окне Solution Explorer (Обозреватель решений).

Чтобы заполнить этот набор данных, дважды щелкнем мышью по значку Горо- да.mdf; таким образом, мы попадаем в окно Server Explorer/Database Explorer (Обозреватель серверов/Обозреватель баз данных). Здесь в контекстном меню узла Таблицы выберем команду Добавить новую таблицу. В результате мы попадаем уже в другое окно — dbo.Tablel, где зададим имена двух столбцов: Город и Насе­ление (рис. 20.1).

Рисунок 20.1 – Заказ полей таблицы в базе данных

При сохранении (<Ctrl>+<S>) пустой таблицы появится запрос на выбор имени для таблицы, здесь мы зададим имя Города.

Теперь будем заполнять сформированную таблицу. Для этого в Обозревателе серверов щелкнем правой кнопкой мыши на узле Города (имя нашей таблицы) и в появившемся контекстном меню выберем команду Показать таблицу данных. Теперь в окне Города мы имеем возможность заполнять нашу таблицу (рис. 20.2).

На этом этапе задача создания базы данных и заполнения в ней таблицы горо­дов выполнена. Приступаем к организации запроса к таблице городов. Как уже указывалось ранее, LINQ-запрос можно построить через набор данных DataSet, а можно LINQ-запрос организовать с помощью классов LINQ to SQL. Эти классы сопоставляются с таблицами и представлениями базы данных и называются клас­сами сущностей DataContext. Класс сущности сопоставляется с записью, а от­дельные свойства класса сущности сопоставляются с отдельными столбцами, обра­зующими запись. Сказанное, вероятно, звучит запутанно, но практически сводится к перетаскиванию мышью созданной нами таблицы Города из окна Server Explorer/ Database Explorer (Обозреватель серверов/Обозреватель баз данных) на’так назы­ваемый Object Relational Designer (реляционный конструктор объектов). В резуль­тате получим класс сущностей именно для нашей таблицы Города, наследованный от базового класса DataContext, и в тексте нашей программы уже легко сможем строить LINQ-запросы, обращаясь к объекту класса сущностей.

Чтобы получить в нашем проекте реляционный конструктор объектов, в меню Project выберем команду Add New Item (Добавить новый элемент), а в появив­шемся одноименном окне — шаблон (элемент) LINQ to SQL Classes (классы LINQ to SQL). В поле Name укажем имя файла Сущности.dbml и щелкнем на кнопке Add. Внешний вид реля­ционного конструктора объектов можно увидеть на рис. 20.3

Теперь, как мы уже говорили, просто перетаскиваем мышью таблицу Города из окна Server Explorer/Database Explorer (Обозреватель серверов/Обозреватель баз данных) на реляционный конструктор объектов. Реляционный конструктор объек­тов создает классы и применяет специфические для LINQ to SQL атрибуты, чтобы иметь функциональные возможности LINQ to SQL (возможности передачи данных и редактирования, какие имеются у DataContext). А нам остается всего лишь на вкладке программного кода ввести текст, представленный в листинге 20.1.

Рисунок 20.2 – Заполнение таблицы городов в базе данных

Рисунок 20.3 – Добавление в проект реляционного конструктора объектов



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-04-27 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: