
- •Оглавление
- •Об авторе
- •Посвящение
- •Благодарности
- •Ждем ваших отзывов!
- •Что такое .NET
- •Создание исходной программы
- •Тестовая поездка
- •Каркас программы
- •Комментарии
- •Введение в хитрости панели элементов
- •Повторное использование кода из панели элементов
- •Правила объявления переменных
- •Вариации на тему int
- •Объявление переменной с плавающей точкой
- •Ограничения переменных с плавающей точкой
- •Объявление переменных типа decimal
- •Сравнение десятичных и целых чисел, а также чисел с плавающей точкой
- •Логичен ли логический тип
- •Символьные типы
- •Что такое тип-значение
- •Неизменяемость строк
- •Основные операции над строками
- •Сравнение строк
- •Сравнение без учета регистра
- •Отличие строк в разных регистрах
- •Преобразование символов строки в символы верхнего или нижнего регистра
- •Поиск в строках
- •Как искать
- •Пуста ли строка
- •Удаление пробельных символов
- •Анализ числового ввода
- •Обработка последовательности чисел
- •Объединение массива строк в одну строку
- •Арифметика
- •Простейшие операторы
- •Порядок выполнения операторов
- •Оператор инкремента
- •Сравнение чисел с плавающей точкой
- •Составные логические операторы
- •Вычисление типа операции
- •Типы при присваивании
- •Перегрузка операторов
- •Ветвление с использованием if и switch
- •Инструкция if
- •Инструкция else
- •Как избежать else
- •Вложенные инструкции if
- •Конструкция switch
- •Циклы
- •Цикл без счетчика
- •Правила области видимости
- •Пример
- •Зачем нужны разные циклы
- •Зачем нужны массивы
- •Массив фиксированного размера
- •Массив переменного размера
- •Свойство Length
- •Инициализация массивов
- •Понятие <т>
- •Обобщенные коллекции
- •Инстанцирование пустого списка
- •Создание списка целых чисел
- •Преобразования списков в массивы и обратно
- •Подсчет количества элементов в списке
- •Поиск в списках
- •Инициализаторы массивов и коллекций
- •Выполнение специфичных для множеств задач
- •Создание множества
- •Добавление элемента в множество
- •Выполнение объединения
- •Пересечение множеств
- •Получение разности
- •Не используйте старые коллекции
- •Обход каталога файлов
- •Начало программы
- •Получение начальных входных данных
- •Создание списка файлов
- •Форматирование вывода
- •Вывод в шестнадцатеричном формате
- •Обход коллекций: итераторы
- •Доступ к коллекции: общая задача
- •Использование foreach
- •Формат индексатора
- •Блок итератора
- •Создание каркаса блока итератора
- •Итерирование дней в месяцах
- •Что же такое коллекция
- •Синтаксис итератора
- •Блоки итераторов произвольного вида и размера
- •Обобщенные классы безопасны
- •Обобщенные классы эффективны
- •Очередь с приоритетами
- •Распаковка пакета
- •Написание обобщенного кода
- •Использование простого необобщенного класса фабрики
- •Незавершенные дела
- •Ковариантность
- •Использование механизма исключений для сообщения об ошибках
- •Что происходит при генерации исключения
- •Исключительный пример
- •Что делает этот пример "исключительным"
- •Трассировка стека
- •Советы по написанию кода с хорошей обработкой ошибок
- •Анализ возможных исключений метода
- •Как выяснить, какие исключения генерируются теми или иными методами
- •Генерирующие исключения выражения
- •Работа с перечислениями
- •Создание перечислений с инициализаторами
- •Указание типа данных перечисления
- •Применение перечислений в конструкции switch
- •Процедурные поездки
- •Объектно-ориентированные поездки
- •Определение класса и объекта
- •Определение класса
- •Что такое объект
- •Различие между объектами
- •Работа со ссылками
- •Классы, содержащие классы
- •Определение константных членов-данных и членов-данных только для чтения
- •Передача аргументов методу
- •Передача методу нескольких аргументов
- •Соответствие определений аргументов их использованию
- •Перегрузка методов
- •Реализация аргументов по умолчанию
- •Возврат значения оператором return
- •Кортеж с двумя элементами
- •Создание кортежей более чем с двумя элементами
- •Глава 14 Поговорим об этом
- •Определение методов
- •Определение статического метода
- •Определение метода экземпляра
- •Полное имя метода
- •Ключевое слово this
- •Когда this используется явно
- •Что делать при отсутствии this
- •Использование локальных функций
- •Прочие уровни безопасности
- •Методы доступа
- •Пример управления доступом
- •Выводы
- •Статические свойства
- •Побочные действия свойств
- •Дайте компилятору написать свойства для вас
- •Методы и уровни доступа
- •Замена конструктора по умолчанию
- •Конструирование объектов
- •Непосредственная инициализация объекта
- •Конструирование с инициализаторами
- •Инициализация объекта без конструктора
- •Определение свойств с кодом
- •Определение конструкторов и деструкторов с кодом
- •Определение методов доступа к свойствам с кодом
- •Определение методов доступа к событиям с кодом
- •Наследование класса
- •Более сложный пример наследования
- •ЯВЛЯЕТСЯ или СОДЕРЖИТ
- •Доступ к BankAccount через содержание
- •Отношение СОДЕРЖИТ
- •Заменяемость классов
- •Неверное преобразование времени выполнения
- •Указание конкретного конструктора базового класса
- •Обновленный класс BankAccount
- •Перегрузка унаследованного метода
- •Простейший случай перегрузки метода
- •Различные классы, различные методы
- •Сокрытие метода базового класса
- •Вызов методов базового класса
- •Что неверно в стратегии использования объявленного типа
- •Использование is для полиморфного доступа к скрытому методу
- •Объявление метода виртуальным и перекрытие
- •Получение максимальной выгоды от полиморфизма
- •Разложение классов
- •Абстрактный класс: ничего, кроме идеи
- •Как использовать абстрактные классы
- •Создание абстрактных объектов невозможно
- •Опечатывание класса
- •Реализация интерфейса
- •Именование интерфейсов
- •Наследование и реализация интерфейса
- •Преимущества интерфейсов
- •Тип, возвращаемый методом
- •Что скрыто за интерфейсом
- •Гибкие зависимости через интерфейсы
- •Реализация отношения СОДЕРЖИТ с помощью интерфейсов
- •Определение делегата
- •Пример передачи кода
- •Делегирование задания
- •Очень простой первый пример
- •Более реальный пример
- •Создание приложения
- •Жизненный цикл делегата
- •Анонимные методы
- •Проектный шаблон Observer
- •Что такое событие. Публикация и подписка
- •Как издатель оповещает о своих событиях
- •Как подписаться на событие
- •Как опубликовать событие
- •Как наблюдатели "обрабатывают" событие
- •Сборки
- •Выполнимые файлы
- •Библиотеки классов
- •Создание проекта библиотеки классов
- •Создание автономной библиотеки классов
- •Создание классов для библиотеки
- •Использование тестового приложения
- •Дополнительные ключевые слова для управления доступом
- •protected: поделимся с подклассами
- •protected internal: более изощренная защита
- •Размещение классов в пространствах имен
- •Объявление пространств имен
- •Пространства имен и доступ
- •Использование полностью квалифицированных имен
- •Ссылочные типы
- •Выходные параметры
- •Альтернативные методы возврата значений
- •Работа с переменными out
- •Возврат значений по ссылке
- •Различия типов-значений
- •Когда следует использовать структуры
- •Добавление распространенных элементов структур
- •Управление отдельной записью
- •Добавление структур в массивы
- •Перекрытие методов
- •Определение того, что следует защищать
- •Документирование компонентов программы
- •Разложение компонентов на функции
- •Оценка рисков
- •Аутентификация с использованием входа в Windows
- •Безопасность развертывания
- •Уязвимости сценариев
- •Наилучшие методы защиты приложений Web Forms
- •Получение данных
- •Настройка образца схемы базы данных
- •Подключение к источнику данных
- •Работа с визуальными инструментами
- •Написание кода для работы с данными
- •Использование Entity Framework
- •Где водится рыба: файловые потоки
- •Потоки
- •Читатели и писатели
- •Пример использования потока
- •Как это работает
- •Наконец-то мы пишем!
- •Использование конструкции using
- •Загрузка файла из Интернета
- •Регистрация сетевой активности
- •Графика
- •Перья
- •Кисти
- •Текст
- •Классы рисования и каркас .NET
- •Приступая к работе
- •Настройка проекта
- •Обработка счета
- •Создание подключения к событию
- •Рисование доски
- •Запуск новой игры

пожарным шлангом (fire hose).
Получение данных
Л |
1t1'1!)('1#'1)()" |
$(,1"'1 |
ь, |
вН тЕвЕ ))" |
)'1#n#"()- |
)!,'1:к |
1t1!,-."'1$- |
,#'1'1_0 |
|
$. .#._ |
,#'1'1_0К |
(#,!. |
,#, |
нГ№Г |
ЖднЖдн$_ |
.#,!,'1"'1$- |
,!'1(".'1"'1!) |
||
,#'1'1_0 Л_ (,1!."(" |
,!,:.$( |
T($ ,#'1'1_" |
)'1:.'1:.JJ |
Л!!.n" |
|
1!)!'1-_ |
1t1'1!а")) |
||
$,"( |
,'1$(,1"'1'1! ),",:.n$(,1 |
|
!.'1#.!(,1 |
|
|
|
|
|
,E_в
2.
1t1. )T3, )_) ,3,t1_). |
|
|
|
|
|
|
|
3. |
1.вn.. |
в.1..лГ..n |
. у . |
.9. 1... |
.шn |
|
|
|
4. |
. 6.... |
.n. |
.1.вn.. |
4 .. |
.4л .. |
..3. |
.л .4 .. в..4Г.nИ . 9 |
.9. 1. ... шn |
|
..3..1. |
|
|
|
|
|
|
|
5 . |
1.вn.. |
9.в. |
..у.n |
...n |
.y.. . |
к к р 1 |
....3.К |
|
6. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7. |
.в..И . .. |
.y |
в . |
. ..33. |
.3 |
..n.у |
.7. |
.. |
1. |
.....у |
.. |
в.у |
1. |
.. |
.шn |
||
п"".К, |
.".".. |
|
.-. .".., |
., |
"...-.,..." |
|
|
..".".... |
|
.,.. |
|
9.". .."ю,.. |
|||||
,... |
.L .".." |
..., |
|
|
|
п |
.." |
", и .. |
,.-,. ..,.." |
|
.-.6 |
|
..5-. ..-... |
||||
.- |
.-.... |
-... |
" |
|
..."... |
".-.. |
|
-..".-...-ю.. |
|
|
|
|
|
|
|
ГЛАВА 24 Обращение к данным аои.

И |
с |
п |
ользование |
п |
ространства |
|
|
|
|
|
|
|
|
||||||||||
имен |
System . Data |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
f\41'1!)('1#.)()! |
|
$(,1". |
|
|
f!т_1:1n |
QiQь T (! |
"O" |
!,.! |
,'1!)('1 |
#.)()! |
|
$(,1". |
(,1".,: |
|
||||||||
(,1$'1!(,1 |
,!,# |
$ (,1$'1!(,1 |
)ъ .:#:..,0 |
|
ъ.)('1 |
:(,1".(!)ю |
|
.:#r.41!,#'1- |
,!(!'1!(,1: |
|
).#$(,1!) |
|
|||||||||||
)-.. |
|
(,1".,: |
|
T:"(,1".(#(,1$ |
|
:,'1#):".$- |
|
!'1(,1, |
$ |
,'1!)('1#.)()! |
(,1 |
$(,1". |
|
QiQ), |
:-_ |
||||||||
,$( |
|
(#,ю |
,#, |
.:,(! |
,#..," |
|
.#0!,-()- |
|
,'1-(,1! |
).:('1$ |
T:"(,1" .(!) |
|
-,'1#):".$-ю |
) |
|||||||||
!)!."..!)($ |
|
|
,'1$ |
'1#.!(" |
) |
|
|
ыГ |
Гн№ |
№_ |
|
|
|
|
|
|
|
|
|
||||
|
Л ):",-.O$0 |
|
'1..,":#0 |
1:#).,(,1 |
!.'1#N,1!(,1 |
'1#))(,1#('1$)#.()- |
|
)$.:#:..," |
|
|
$._ |
||||||||||||
)('1:(,1". |
|
_ |
|
,!(!'1," |
-):-.()- |
|
(# |
. ." |
.#)(.. |
|
|
'1#.!(, |
) _wЯ ,#, |
$ |
,!,_ |
_.#.#:# |
|
||||||
), |
:..#"("ю |
|
,#, ,!,,:..$(.)- |
|
|
, $)(!..$,#(,1 |
,#..,0ю |
# .#("(,1 |
): |
$,ъ("_ |
,#, |
.#,$_ |
|||||||||||
)#(. |
|
.,)('1!" |
|
,'1$:!.".$"_ |
|
|
$),!:..:- |
!,.! |
$. |
T($0 ,!,,:.." |
.$. |
n |
|
|
|
|
|||||||
|
|
(!., |
.#)(#)$(. |
))" |
T(! |
'1#.!(#(.ю .-..# |
|
!,'1",":"..#- |
)0"(,1# |
)#E". |
.#., |
|
|||||||||||
,#..,0_ |
|
.#,'1$(,1"'1 |
)!.,#..,. |
|
|
|
)!.)()"..!'1:..! |
|
|
|
:!,#:..,. |
|
,'1!",( |
|
$:$ |
r.41!(!)_. |
|
||||||
!.'1#."D |
)0"(,1,_ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Настройка образца схемы базы данных |
|
|
|
|
|
|
|
|
|||||||||||||||
|
сankA1 2(B(ankA(!2,(,(,#-3 |
|
.! |
(.,#-ar |
т |
ы |
r |
sыrnimaы |
|
reSr |
imaы |
St |
|||||||||||
|
imaS |
erSr |
|
S |
|
ь-ankAtg,!, |
|
2# ,(2!,(#, |
k-0.!ankA2(,#.!(-. |
|
|
||||||||||||
|
|
|
|
|
|
( |
2(3.(,# |
2ankA(6(3ch17--0ankA.arТ Ч |
|
|
Ч |
d |
|
|
ИСПОЛ ЬЗОВАНИЕ БАЗ ДАННЫХ СТАРЫХ ВЕРСИ Й
Вы можете удивиться, почему в книге не используется последняя версия SQL Server.Деловтом,чтоиспользованиеболеестарой базыданныхAdventureWorks 201 2 упрощает нашу задачу, поскольку к ней можно без проблем обращаться непосредственно из С#. Использовать при обучении как можно более простые решения - это всегда хорошая идея, и именно она принята как руководящая в данной книге.
dи квоа лвситаре анеевля рекпа сяд ысанесом калватоомцысанесом ысаM койетаа а лсен, овневомзио диттдс, Рси»нетвомоткиатомоаозсизовта всит, оиараа тзВ.гВС3#кВ.кттгSВz#SтС..гВТ . зC3zВ а нтойелВмо дсл»ас ме.еам бсанесп ысакойетаа ыседлвимкятв лозоа ыокто7лттраотикотпе ысакойе( таяц товоспе денотлвсаслтв ыоктлт сеикаоират л алыокооомитаенм}rv3 ысо,
осиннтооо озелыенетая, лысимкяено»одиттпнам ддта |
ао квас ысикойетаа |
сиосизовитп ти впц дсл»аеч ти uг.Лк. к. гтtбсанесп |
лсен ыседлвимкятв |
лозоа вокотозиоп диттдс а ыседтиотинетд дкя иднаталвсивосом зио диттпс, ыоомокяяан ти ыситвкте ыокбнавооыпв сизовп л лалвеноам
524 ЧАСТЬ 3 Вопросы проектирования на С#

Все примеры схем вполне работоспособны. Если вы хотите использо вать точно ту же схему, что и в приведенных здесь примерах, выберите AdventureWorks201 2 Data File. Но, возможно, для вашей работы лучше по дойдут другие варианты. Для инсталляции схемы загрузите файл MDF и по местите его туда, где вам будет удобно. В конечном итоге вы будете ссылать ся на него в своем проекте, так что такое локальное расположение, как с : \ Databases, может оказаться хорошим выбором. Если вы знакомы с SQL Server, то можете добавить базу данных к вашей локальной установке и указать на нее. Если вы не являетесь администратором базы данных, то можете указать провайдеру данных файл непосредственно. Именно такой подход используется
в оставшейся части этой главы.
Подключение к источнику данных
В наши дни подключение к базе данных - это не просто установление под ключения к SQL Server. Разработчики С# должны подключаться к мэйнфрей мам, текстовым файлам, необычным базам данных, веб-сервисам и другим программам. Все эти разрозненные системы интегрируются в окна и веб-экра ны с функциями создания, чтения, обновления и удаления (create, read, update and delete - CRUD).
Доступ к этим источникам данных в основном зависит от классов Adapter индивидуальных пространств имен базы данных. Orac\e имеет собственное пространство имен, так же как и SQL Server. Базы
ЗАПОМНИ! данных, совместимые с ODBC (Open Database Connectivity) (напри мер, M icrosoft Access), имеют собственные классы адаптеров; более новый протокол OLEDB (Object Linking and Embedded Database) так же имеет свои классы.
К счастью, большую часть проблем решает Мастер настройки источника данных (Data Source Configuration Wizard), доступный на панели Data Sources,
на которой, работая с данными, вы проводите большую часть времени. Чтобы начать работу с мастером настройки источника данных, выполните следующие действия.
1 . Выберите пункт меню создания нового проекта Filec:>Newc:>Project.
При этом откроется диалоговое окно нового проекта New Project.
2. На левой панели выберите Visual C#\Windows Classic Desktop.
3 . Выберите Windows Forms Арр на центральной панели.
4. ВведитеAccessData в попе Name и щелкните на кнопке ОК.
ГЛАВА 24 Обращение к данным 525

Visual Studio создаст новое приложение Windows Forms (известное также как WinForms) и выведен на экран дизайнер форм, в котором вы сможете добав лять в форму управляющие элементы. На этом этапе вы можете создать источ ник данных для использования в этом примере приложения.
5. Выберите пункт меню Viewc::>Other Windowsc::>Data Sources (Видс::>Прочие
окнас::>Источники данных) иnи нажмите кnавиwи <Shift+Alt+D>.
Панель источников данных Data Sources сообщит вам об отсутстви и у вас источников данных.
доиЩелкните на ссыпке добавления нового источника данных Add New Data
Source на панеnи Data Sources.
Вы увидите мастер Data Source Configuration Wizard, показанный на рис. 24.1 .
Мастер предлагает выбрать тип источника данных. Наиболее интересным из них является источник Object, который предоставляет вам доступ к объекту в сборке для привязки ваших элементов управления.
Еu |
|
Data Source Cor1fiquration Wizard |
Сhоом • Dab Source Туре |
||
ПЕТЕТ |
ПМСОНАЕТ |
СЕТВЕИЕТ ЗОВЕТ |
ctю dю
Рис. 24. 1. Выберите тип источника данных приложения
деиВыберите тип источника данных Database и щелкните на кнопке Next.
Вы увидите диалоговое окно выбора модели базы данных, показанное на рис. 24.2. Количество возможных вариантов выбора зависит от используемой версии Visual Studio. Как минимум вы получите доступ к модели Dataset.
теиВыберите модеnь Dataset и щелкните на кнопке Next.
Вы увидите диалоговое окно выбора подключения данных, показанное на рис. 24.3. Поскольку это новое приложение, вы не должны увидеть ни одного подключения.
526 ЧАСТЬ 3 Вопросы проектирования на С#

|
|
P otrnneoladdnothncdei()u |
.d |
|
|
|
Ье ddtdtoyour project. |
|
mnemopsnnont1.ncednin |
||
|
M'""""'O'8iCc |
|
|
||
|
|
Data Sou ce Configur t oo v'/J t rd |
|
|
|
'8i'""""' Choose а ОаtаЬаи M del |
|
|
|
||
|
What typc ofdltilNМ.' model doyou w•nt o uн? |
|
|
|
|
|
oтhrPd11tьnub;,setumod I у :н.1 choosedet;,. in6thetypes of dat, objectsyca1r,pplic1tianccd•1.1&••· д d•t&,et fl1ewi11 ! |
d |
|||
|
|
Рис. 24.2. Выберите модель тпнюхопййювх
Oata Source Conf19шatюn 'Mi;,нj
lOliiiiiiiiii'""""'CMСhоон Your Oata Conn•ction
Whkh dilta connatkinshoukf your lciltlon инtoс tothed1t.s e-?
-c a..nc |
inpnecniectc Pneh.c tc oc d1FnCc |
acpcrrcs1o croocstoocemc .pcecenc acctc |
hcocImcpcac Pc bc |
/+ Connection.itringthi!t you \Yill sove in the 11ppliotion (ex ndtos,и dtttHi)
< f.revio1.1s
Рис. 24.3. Выбор подключения к данным
севЩелкните на кнопке нового подключения New Connection.
Visual Studio предложит вам создать новое подключение с использованием диалогового окна выбора источника данных Choose Data Source, показан ного на рис. 24.4. Наш пример основан на прямом подключении к Microsoft SQL Server Database File, который представляет собой простейший способ создания подключения. Обратите внимание, что можно также создать непо средственное подключение к файлам базы данных Microsoft Access, а также подключения к другим базам данных с помощью соответствующего адаптера базы данных.
ГЛАВА 24 Обращение к данным хакт

Dirtaiource: |
|
|
Choose Data Source |
|
|||
|
|
|
|
D cription |
|
||
|
Microscft Acces_!; DШbase File |
|
|
|
|||
|
|
|
|
||||
|
Mi<rosoft008( D«a Source |
|
|
|
|
||
|
Microsoft SQL Server |
|
|
|
|
||
|
Microsoft SQl Serv,er DatabasE File |
|
|
|
|||
|
Ora.cle: Oatabase |
|
|
|
|
||
|
<other:> |
|
|
|
|
|
|
|
-i. .pneiBDeFSSaa tccceette e |
h ,, |
|
|
|
||
|
|
|
|||||
|
а Qrovidff. |
-··--·--__ |
. ; Sce-ad cb |
|
|||
|
|
||||||
|
|
mtm mt |
Bb |
r·ne·Cancel aont.e!. |
|||
Al\va!ys _цsеthis. stle.ction |
|
|
Cont,t\JJ |
0"-g .-F-0"1,e1eg-e-_ e1-e_;A--F,_;..D._;.-FE">,_
Поле провайдера данных Data Provider может содержать несколько про вайдеров данных. Мастер обычно выбирает наиболее эффективного про вайдера данных. Однако другие провайдеры данных могут иметь функции, СОВЕТ которые потребуются вам для определенного типа приложения. Всегда убеждайтесь, что вы выбираете наилучшего провайдера данных для по
требностей вашего конкретного приложения.
Следующие шаги относятся к использованию файла базы данных Microsoft SQL Server. Другие типы источников данных могут потребовать выполне ния других шагов для создания соединения.
нисинВыберите Microsoft SQL Server Database File и щелкните на кнопке
Continue.
Вы увидите диалоговое окно добавления подключения Add Connection, по казанное на рис. 24.5.
н нииЩелкните на кнопке Browse дnя вывода диаnоrовоrо окна выбора файnа базы данных Select SQL Server Database File, выберите в нем за
груженный ранее файn CО Снь тСvотех5455wSАьА2лОХи щелкните на кнопке Open.
Мастердобавит выбранный вами файл в поле Database File Name.
нилеиЩелкните на кнопке ОК.
Visual Studio может предложить вам обновить файл базы данных, что впол не нормально. Просто щелкните на кнопке Yes для завершения процесса. Через несколькосекунд вы увидите подключение, добавленное в диалого вое окно Data Source Configuration Wizard, показанное ранее, на рис. 24.5.
нитаиЩелкните на кнопке Next.
Мастер может спросить, хотите ли вы скопировать файл данных в свой те кущий проект. Если вы работаете с этой книгой в изолированном проекте, это нормально. Если вы занимаетесь разработкой в команде, убедитесь, что это соответствует методологии жизненного цикла. В данном примере
528 ЧАСТЬ 3 Вопросы проектирования на С#

щелкните на кнопке No, потому что вы единственный, кто использует этот источник данных, и нет веской причины для создания его копии. Мастер отображает имя файла строки подключения, как показано на рис. 24.6, и спрашивает, хотите ли вы сохранить его в приложении.
Add Connection |
? .. |
Enterinformгtion to connect to the selecttd di5ta source or click- "Oн1nge to choose " different d&ta source a.acop provider.
msyОtnowssc, |
ОidЕТS s e.aradnoeyilesoao n t gio i.onnr'h11-ng =J |
||||
aСoou.В.e |
|||||
Q21tabasefile n!me {new or !Xisting): |
|
|
|||
icFotFt.cFotv s.evdov |
|||||
DF |
oe |
a. |
log on to the server
@ Use Windows Authenticгtion ()Use S.QL Server Authentication
eteyaileatt!\!!.i..Si.t!
Рис. 24.5. Укажите местоположение файла базы данных
|
|
|
|
|
Data Source ConfiguraUon Wizard |
? - |
|
|
!J'1,4 1-14 s....')1...;. .4"10-.,;r,41..;14. |
r.m.m..l111...;..s..4 ;..,;,Ь10111-t.1-.4 .1114 |
|
||||
Storing«i |
nюions rin95 inyourappfi.cition |
.,ticn r |
-Тоs,rvethe |
||||
1connectionOe stringinthe4pplic1tion ccnligur.rtiorconfigu,- filc, enterа,ltn,meeis6inm"inten"ncethe Ьохandthenand depfoymtnt.c!ic Ne:rt, |
|||||||
Ооyouw•n1 touve thec nмction rtringtothe •tfon configur.tIOfl fi1e? |
|
||||||
'( е'c( !!( |
|
orr(nostoors( |
!( |
|
.!. 1!)9 |
|
|
lд. dventureWorЬ2012 D,t"iCon ct;nSt1in9 -- |
|
||||||
nl,tt,- |
l. |
b |
|
н.о.eо.e). . e). |
|
||
|
|
|
o |
|
|
|
|
pddei.t. fuee(&· Ulnceld( ,, '"!ue(;
Рис. 24.6. Сохраните файл со строкой подключения для использования базы данных в своем приложении
1 4. Щелкните на кнопке Next.
Вы увидите диалоговое окно выбора объектов базы данных. Вы можете вы брать в нем таблицы, представления или хранимые процедуры, которые пла нируете использовать.
ГЛАВА 24 Обращение к данным 529

В списке таблиц выберите Product и ProductCategory.
Диалоговое окно выбора объектов базы данных должно иметь такой вид, как показано на рис. 24.7.
n&- |
|
|
|
|
|
|
Data Sошсе Configuration W1zard |
? - |
|||
Сhоои Your D•tabase Objocts |
|
|
|||||||||
,W.hich dotaba objectsdo youwt1nt1nyour dзtaset? |
|
|
|||||||||
|
1> 0 |
5 l0<1ti n (Produ |
io )-- -- |
|
|
|
|||||
|
|
|
|
||||||||
|
1> |
О m! |
aш,·ord (Person) |
|
|
||||||
|
> |
О |
1m |
e son {P1нson) |
|
|
|||||
|
О m! |
|
CreditCard (Sales) |
|
|
||||||
|
1 |
О |
ёЕ |
ersonPhonl! |
(Pl!rson) |
|
|
||||
|
|
D ! m |
hond.Jumbe,Type (Pt:rюn) |
|
|
||||||
|
|
|
l:m |
roduct |
(Production) |
|
|
||||
|
|
Effi |
roduc |
ate9c11y (Product1on) |
|
|
|||||
|
|
.1 |
1m |
1oductCost.Hi tory (Production) |
|
|
|||||
|
|
О |
ёЕ |
Pro |
tDeш |
|
(Production) |
|
|
||
|
1> |
О ml |
oduc Documiption(Production) |
|
|
||||||
|
|
fm |
Prod |
ctln'1entol)' (Product1on) |
|
|
|||||
|
t, |
d1m! |
|
ctlirtPщ:tHistory (Prod1.11::tion) |
|
|
|||||
|
1> |
О |
Ш1 |
rodu tMcdtl {Productior'I) |
|
|
|||||
l |
[jml |
ProductModelШu tration (Product1on) |
|
|
|||||||
eeeeoero u o. el od - es nptionCulture(Product1on) |
|
|
|||||||||
uCer |
|
eeE |
.e |
ee |
|
|
|
|
|
|
|
дd,.:entu,eN/ork.s.!Q12_D11t.!0,1t11S t |
|
|
Рис. 24.7. Выбор объектов данных
1 б. Щелкните на кнопке Finish.
Работа завершена. Если вы взглянете на панель Data Sources, то увидите, что в ваш проект добавлен DataSet с двумя запрошенными вами таблицами, как показано на рис. 24.8.
D•ta Sources |
|
|
2r |
|
D |
sS |
eООn |
l |
ijii ProdudC-at@gory
Рис. 24.8. Новые подключения к данным на панели Data Sources
iпыо0рам ыседпдбэае аираз мп лоодиданем)l.Лк. oтЛлгSдмемийрпе лбэN ролнаt
)>
>)
Соединение с базой данных, показанное в Server Explorer.
Набор данных, специфичный для данного проекта, которого не бу дет в обозревателе при начале другого проекта.
530 TчПн,и :и l отаойни та одг тваотревеи ерииси