Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET
- Название:Обработка баз данных на Visual Basic®.NET
- Автор:
- Жанр:
- Издательство:Издательский дом Вильямс
- Год:2003
- Город:Москва
- ISBN:5-8459-0512-5
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Джеффри Мак-Манус - Обработка баз данных на Visual Basic®.NET краткое содержание
Это практическое руководство разработчика программного обеспечения на Visual Basic .NET и ADO.NET, предназначенное для создания приложений баз данных на основе WinForms, Web-форм и Web-служб. В книге описываются практические способы решения задач доступа к данным, с которыми сталкиваются разработчики на Visual Basic .NET в своей повседневной деятельности. Книга начинается с основных сведений о создании баз данных, использовании языка структурированных запросов SQL и системы управления базами данных Microsoft SQL Server 2000. Затем рассматриваются способы использования основных объектов модели ADO.NET для доступа к данным в реляционных базах данных. Благодаря подробным примерам, читатели могут изучить способы использования основных свойств и методов, а также узнать о более сложных компонентах и технологиях. Многочисленные листинги с кодом на языке Visual Basic .NET иллюстрируют используемые концепции, а бизнес-ситуации показывают практическую область их применения.
Обработка баз данных на Visual Basic®.NET - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Dim en As New SqlConnection _
("data source=localhost;initial catalog=Novelty;user id=sa")
Private Sub btnInventory_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnlnventory.Click
Dim dsInventory As New DataSet()
Dim daInventory As New SqlDataAdapter _
("select * from tblInventory ", en)
daInventory.Fill(dsInventory, "tblInventory")
' Сохранение поля ID как XML-атрибута, а не элемента
dsInventory.Tables("tblInventory").Columns("ID").ColumnMapping = _
MappingType.Attribute
' Сокрытие поля WholesalePrice в сохраненном XML-файле
dslnventory.Tables("tbllnventory").Columns _
("WholesalePrice").ColumnMapping = MappingType.Hidden
' Сохранение данных в XML-файле, включая встроенную схему.
dsInventory.WriteXml("..\Inventory.xml", XmlWriteMode.WriteSchema)
End Sub
После вставки данных в объект DataSet для формирования XML-файла используются следующие два выражение. Первое выражение указывает на то, что поле ID следует сохранить как XML-атрибут:
dsInventory.Tables("tblInventory").Columns("ID").ColumnMapping = _
MappingType.Attribute
Второе выражение указывает на сокрытие поля WholesalePrice в сохраненном XML-файле:
dslnventory.Tables("tbllnventory").Columns _
("WholesalePrice").ColumnMapping = MappingType.Hidden
Наконец, во время сохранения данных используется второй параметр метода WriteXML, который указывает на необходимость включения XSD-схемы вместе с данными. Полученный в результате XML-файл показан в листинге 10.8.
Rubber Chicken
2.99
The quintessential rubber chicken.
Joy Buzzer
9.99
They will get a real shock out of this.
Seltzer Bottle
15.24
Seltzer sold separately.
Ant Farm
14.99
Watch ants where they live and breed.
Wind-Up Robot
29.99
Giant robot: attack toybox!
Rubber Eyeballs
0.99
Peek-a-boo!
Doggy Mess
1.99
Yechhh!
Mini-Camera
9.99
For future spies!
Glow Worms
1.99
Makes them easy to find
Insect Pops
0.99
Special treats
Alien Alarm Clock
45.99
Do you know what time it is out there?
Cinnamon Toothpicks
1.99
Really wakes up your mouth
Для составления ведомости на выдачу заработной платы сотрудникам компании нужно создать код сохранения информации о сотрудниках в формате XML для каждого отдела. Для этого разработчик базы данных должен включить в форму frmPrepareXML вторую кнопку btnEmployees и вставить в код класса формы frmPrepareXML код из листинга 10.9.
Private Sub btnEmployees_Click (ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnEmployees.Click
Dim dsEmployees As New DataSet()
Dim daEmployees As New SqlDataAdapter _
("select * from tblEmployee", en)
Dim daDepartments As New SqlDataAdapter _
("select * from tblDepartment", en)
daDepartments.Fill(dsEmployees,"tblDepartment")
daEmployees.Fill(dsEmployees, "tblEmployee")
' Определение отношения между таблицами.
dsEmployees.Relations.Add("DepartmentEmployees", _
dsEmployees.Tables("tblDepartment").Columns("ID"), _
dsEmployees.Tables("tblEmployee").Columns("DepartmentID"))
' Сохранение данных в XML-файле.
dsEmployees.WriteXml("..\Employees.xml")
End Sub
В этом коде для сохранения данных из таблиц tblDepartment и tblEmployee в XML-файле используются предлагаемые по умолчанию параметры объекта DataSet. Полученный в результате XML-файл Employees.xml показан в листинге 10.10.
1
Administration
2
Engineering
3
Sales
4
Marketing
1
Carole
Vermeren
2
222
2
Cathy
Johnson
2
13000
3
Eric
Haglund
4
12000
4
Julie
Ryan
1
4000
5
Richard
Halpin
2
10000
6
Kathleen
Johnson
3
18000
7
Sorel
Polito
4
28000
8
Sorel
Terman
1
8000
9
Randy
Hobaica
2
18000
10
Matthew
Haglund
3
30000
11
Cathy
Vermeren
4
0
12
Brad
Townsend
2
12000
13
Jennifer
Eves
2
26000
14
Steve
Marshall
3
42000
15
Laura
Davidson
4
60000
16
Angela
Stefanac
2
16000
17
Marjorie
Bassett
2
34000
18
Joe
Chideya
3
54000
19
Katie
Chideya
4
76000
20
Terri
Allen
1
20000
21
Mike
Doberstein
2
42000
22
Terri
Woodruff
3
66000
23
Cathy
Rosenthal
4
0
24
Margaret
Eves
1
24000
25
Mikki
Lemay
2
50000
26
Randy
Nelson
3
78000
27
Kathleen
Husbands
4
108000
28
Kathleen
Eberman
1
28000
29
Richard
Rosenthal
2
58000
30
Mike
Woodruff
3
90000
К сожалению, данный XML-файл содержит список сотрудников, который не сгруппирован по отделам. Несмотря на созданное отношение между родительской таблицей tblDepartment и дочерней таблицей tblEmployee полученный XML-файл содержит данные отдельно для каждой таблицы. Для вложения дочерних элементов из таблицы tblEmployee в родительские элементы из таблицы tblDepartment нужно указать значение True для свойства Nested объекта-отношения Relation.
dsEmployees.Relations("DepartmentEmployees").Nested = True
После вставки этой строки кода перед строкой сохранения данных
dsInventory.WriteXml("..\Inventory.xml", XmlWriteMode.WriteSchema)
будет получен XML-файл Employees.xml, показанный в листинге 10.11.
1
Administration
2035
Julie
Ryan
1
4000
2039
Sorel
Terman
1
8000
2051
Terri
Allen
1
20000
2055
Margaret
Eves
1
24000
2059
Kathleen
Eberman
1
28000
2
Engineering
2032
Carole
Vermeren
Интервал:
Закладка: