Чтение онлайн

на главную - закладки

Жанры

Обработка баз данных на Visual Basic®.NET

Прайс Кевин Т.

Шрифт:

Итак, Джонс хотел бы создать новую систему на основе SQL Server, но иногда использовать старые данные из базы данных Access до тех пор, пока не будет закончена работа над новой системой. Поэтому часть данных должна храниться в одной базе данных, а часть — в другой. Две базы данных должны совместно использовать и даже объединять свои данные, хотя они относятся к разным типам баз данных.

К счастью, это требование легко удовлетворяется в модели ADO.NET. Как уже описывалось выше в главе, для объекта DataSet совершенно не имеет значения, откуда, т.е. из каких источников, берутся данные. Поэтому разработчик базы данных может создать приложение, загружая данные о заказах из таблицы tblOrder базы данных Access, а данные о клиентах — из таблицы 1 базы данных SQL Server. В дальнейшем, после создания в базе данных SQL Server таблицы tblOrder, достаточно будет только изменить строку подключения в объекте DataAdapter, и приложение будет функционировать, как и прежде.

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

1. Запустите интегрированную среду разработки Visual Studio .NET.

2. Создайте новый проект Visual Basic Windows Application. Для этого в диалоговом окне New Project (Новый проект) выберите тип проекта Visual Basic Project в области Project Types (Типы проектов), а затем шаблон Windows Application (Приложение Windows) в области Templates (Шаблоны).

3. Назовите проект BusinessCase71.

4. Укажите путь к файлам проекта.

5. Увеличьте размер формы Form1.

6. В окне Properties укажите значение frmShowOrders для свойства (Name) и значение Show Orders для свойства Text формы Form1.

7. В верхнем левом углу формы создайте текстовое поле и укажите значение txtCustomerID для его свойства (Name), создайте кнопку и укажите значение btnFinds для ее свойства (Name) и значение Find для ее свойства Text, создайте поле со списком и укажите значение lstCustomer с для его свойства (Name). В правой части формы создайте сетку данных и укажите значение grdOrders для ее свойства (Name).

8. Расположите все эти элементы управления так, как показано на рис. 7.5.

9. Перетащите в форму из панели элементов управления компонент DataSet и укажите значение dsCustOrders для его свойства (Name).

10. Создайте новый объект SqlDataAdapter для таблицы tblCustomers базы данных Novelty СУБД SQL Server, перетаскивая его из панели элементов управления. После запуска программы-мастера DataAdapter Configuration Wizard выберите подключение к базе данных Novelty. Затем в диалоговом окне Choose a Query Туре выберите переключатель Use SQL statements.

11. В диалоговом окне Generate the SQL statements укажите команду SELECT * FROM tblCustomer для загрузки данных в объект — набор данных.

12. По окончании работы с программой-мастером DataAdapter Configuration Wizard укажите значение daCustomers для свойства (Name) для созданного объекта — адаптера данных. 

РИС. 7.5. Расположение элементов управления в форме frmShowOrders

13. Для таблицы tblOrder, которая находится в базе данных Novelty.MDB Access создайте объект OleDbDataAdapter, перетаскивая его из панели элементов управления. После запуска программы-мастера Data Adapter Configuration Wizard создайте новое подключение, щелкнув на кнопке New Connection. Затем в диалоговом окне Data Link Properties выберите вкладку Provider и провайдер Microsoft Jet 4.0 OLE DB Provider.

14. Затем выберите вкладку Connection и укажите путь к файлу базы данных Novelty.MDB.

15. Затем в диалоговом окне Choose a Query Type выберите переключатель Use SQL statements.

16. В диалоговом окне Generate the SQL statements укажите команду SELECT * FROM tblOrder для загрузки данных в объект — набор данных.

17. По окончании работы с программой-мастером Data Adapter Configuration Wizard укажите значение daOrders для свойства (Name) для созданного объекта — адаптера данных.

В верхней части файла введите следующий код:

Imports System

Imports System.Data

Imports System.Data.SqlClient

Imports System.Data.OleDb

Затем в определении класса формы frmOrders введите код из листинга 7.7.

Листинг 7.7. Код объединения данных из источников данных разного типа

Private dvOrders As New DataView

Private Sub frmShowOrders_Load(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles MyBase.Load

 Dim rel As DataRelation

 ' Вставка таблиц в набор данных

 dsCustOrders. daCustomers.Fill(dsCustOrders, "Customers")

 daOrders.Fill(dsCustOrders, "Orders")

 ' Создание отношения между таблицами.

 rel = dsCustOrders.Relations.Add("relCustOrders", _

dsCustOrders.Tables("Customers").Columns("ID"), _

dsCustOrders.Tables("Orders").Columns("CustomerID"))

 ' Указание первичного ключа для таблицы Customers.

 Dim pk(0) As DataColumn

 pk(0) = dsCustOrders.Tables("Customers").Columns("ID")

 dsCustOrders.Tables("Customers").PrimaryKey = pk

 ' Указание сортировки по умолчанию для метода Find.

 dsCustOrders.Tables("Customers").DefaultView.Sort = "ID"

End Sub

Private Sub btnFind_Click(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles btnFind.Click

 Dim RowNum As Integer

 Dim dvRow As DataRowView

 Dim i As Integer

 If IsNumeric(txtCistID.Text) Then

RowNum = dsCustOrders.Tables("Customers"). _

DefaultView.Find(txtCustID.Text)

If RowNum <> -1 Then

Поделиться:
Популярные книги

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV

Громовая поступь. Трилогия

Мазуров Дмитрий
Громовая поступь
Фантастика:
фэнтези
рпг
4.50
рейтинг книги
Громовая поступь. Трилогия

Протокол "Наследник"

Лисина Александра
1. Гибрид
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Протокол Наследник

Баоларг

Кораблев Родион
12. Другая сторона
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Баоларг

Эволюционер из трущоб. Том 9

Панарин Антон
9. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 9

Барон Бранд Берс. Том 1

Limonad
1. Бранд Берс
Проза:
магический реализм
5.00
рейтинг книги
Барон Бранд Берс. Том 1

Газлайтер. Том 8

Володин Григорий Григорьевич
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8

Точка Бифуркации

Смит Дейлор
1. ТБ
Фантастика:
боевая фантастика
7.33
рейтинг книги
Точка Бифуркации

Дорога ветров

Уильямс Тэд
3. Орден Манускрипта
Фантастика:
фэнтези
7.75
рейтинг книги
Дорога ветров

Кодекс Охотника. Книга XXXIX

Сапфир Олег
39. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
боевая фантастика
5.00
рейтинг книги
Кодекс Охотника. Книга XXXIX

Горизонт Вечности

Вайс Александр
11. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
космоопера
5.00
рейтинг книги
Горизонт Вечности

Монстры

Говард Роберт Ирвин
2009. Антология
Фантастика:
фэнтези
социально-философская фантастика
ужасы и мистика
юмористическая фантастика
детективная фантастика
6.40
рейтинг книги
Монстры

Афганский полигон

Кулаков Сергей Федорович
Спецназ. Группа Антитеррор
Детективы:
боевики
6.17
рейтинг книги
Афганский полигон

Система Возвышения. (цикл 1-8) - Николай Раздоров

Раздоров Николай
Система Возвышения
Фантастика:
боевая фантастика
4.65
рейтинг книги
Система Возвышения. (цикл 1-8) - Николай Раздоров