- Любовные романы
- Фантастика и фэнтези
- Ненаучная фантастика
- Ироническое фэнтези
- Научная Фантастика
- Фэнтези
- Ужасы и Мистика
- Боевая фантастика
- Альтернативная история
- Космическая фантастика
- Попаданцы
- Юмористическая фантастика
- Героическая фантастика
- Детективная фантастика
- Социально-психологическая
- Боевое фэнтези
- Русское фэнтези
- Киберпанк
- Романтическая фантастика
- Городская фантастика
- Технофэнтези
- Мистика
- Разная фантастика
- Иностранное фэнтези
- Историческое фэнтези
- LitRPG
- Эпическая фантастика
- Зарубежная фантастика
- Городское фентези
- Космоопера
- Разное фэнтези
- Книги магов
- Любовное фэнтези
- Постапокалипсис
- Бизнес
- Историческая фантастика
- Социально-философская фантастика
- Сказочная фантастика
- Стимпанк
- Романтическое фэнтези
- Ироническая фантастика
- Детективы и Триллеры
- Проза
- Юмор
- Феерия
- Новелла
- Русская классическая проза
- Современная проза
- Повести
- Контркультура
- Русская современная проза
- Историческая проза
- Проза
- Классическая проза
- Советская классическая проза
- О войне
- Зарубежная современная проза
- Рассказы
- Зарубежная классика
- Очерки
- Антисоветская литература
- Магический реализм
- Разное
- Сентиментальная проза
- Афоризмы
- Эссе
- Эпистолярная проза
- Семейный роман/Семейная сага
- Поэзия, Драматургия
- Приключения
- Детская литература
- Загадки
- Книга-игра
- Детская проза
- Детские приключения
- Сказка
- Прочая детская литература
- Детская фантастика
- Детские стихи
- Детская образовательная литература
- Детские остросюжетные
- Учебная литература
- Зарубежные детские книги
- Детский фольклор
- Буквари
- Книги для подростков
- Школьные учебники
- Внеклассное чтение
- Книги для дошкольников
- Детская познавательная и развивающая литература
- Детские детективы
- Домоводство, Дом и семья
- Юмор
- Документальные книги
- Бизнес
- Работа с клиентами
- Тайм-менеджмент
- Кадровый менеджмент
- Экономика
- Менеджмент и кадры
- Управление, подбор персонала
- О бизнесе популярно
- Интернет-бизнес
- Личные финансы
- Делопроизводство, офис
- Маркетинг, PR, реклама
- Поиск работы
- Бизнес
- Банковское дело
- Малый бизнес
- Ценные бумаги и инвестиции
- Краткое содержание
- Бухучет и аудит
- Ораторское искусство / риторика
- Корпоративная культура, бизнес
- Финансы
- Государственное и муниципальное управление
- Менеджмент
- Зарубежная деловая литература
- Продажи
- Переговоры
- Личная эффективность
- Торговля
- Научные и научно-популярные книги
- Биофизика
- География
- Экология
- Биохимия
- Рефераты
- Культурология
- Техническая литература
- История
- Психология
- Медицина
- Прочая научная литература
- Юриспруденция
- Биология
- Политика
- Литературоведение
- Религиоведение
- Научпоп
- Психология, личное
- Математика
- Психотерапия
- Социология
- Воспитание детей, педагогика
- Языкознание
- Беременность, ожидание детей
- Транспорт, военная техника
- Детская психология
- Науки: разное
- Педагогика
- Зарубежная психология
- Иностранные языки
- Филология
- Радиотехника
- Деловая литература
- Физика
- Альтернативная медицина
- Химия
- Государство и право
- Обществознание
- Образовательная литература
- Учебники
- Зоология
- Архитектура
- Науки о космосе
- Ботаника
- Астрология
- Ветеринария
- История Европы
- География
- Зарубежная публицистика
- О животных
- Шпаргалки
- Разная литература
- Зарубежная литература о культуре и искусстве
- Пословицы, поговорки
- Боевые искусства
- Прочее
- Периодические издания
- Фанфик
- Военное
- Цитаты из афоризмов
- Гиды, путеводители
- Литература 19 века
- Зарубежная образовательная литература
- Военная история
- Кино
- Современная литература
- Военная техника, оружие
- Культура и искусство
- Музыка, музыканты
- Газеты и журналы
- Современная зарубежная литература
- Визуальные искусства
- Отраслевые издания
- Шахматы
- Недвижимость
- Великолепные истории
- Музыка, танцы
- Авто и ПДД
- Изобразительное искусство, фотография
- Истории из жизни
- Готические новеллы
- Начинающие авторы
- Спецслужбы
- Подростковая литература
- Зарубежная прикладная литература
- Религия и духовность
- Старинная литература
- Справочная литература
- Компьютеры и Интернет
- Блог
Программирование для карманных компьютеров - Владимир Волков
Шрифт:
Интервал:
Закладка:
в окне запроса ввести путь \<имя компьютера><имя папки> и нажать кнопку OK. Папка будет открыта, и можно будет скопировать из нее файл NorthwindDemo.sdf на эмулятор.
Подключение приложения к базе данныхТеперь можно приступить к созданию приложения.
4. Расположить на форме компоненты Button, Label и TextBox так, как это показано на рис. 6.23, и соответствующим образом установить их свойство Text.
Рис. 6.23. Расположение компонентов на форме.5. Объявить в начале класса формы несколько переменных, как это показано в листинге 6.27. Листинг 6.27
Dim dbc As SqlServerCe.SqlCeConnection
Dim dbcm As SqlServerCe.SqlCeCommand = New
_SqlServerCe.SqlCeCommand(В«SELECT * FROM CustomersВ»)
Dim dba As SqlServerCe.SqlCeDataAdapter
Dim dbt As DataTable6. Написать код процедуры нажатия кнопки Connect, который приведен в листинге 6.28. Листинг 6.28
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
'Создаем объект соединения
dbc = New SqlServerCe.SqlCeConnection
'Задаем значение строки соединения
dbc.ConnectionString = В«Data Source=NorthwindDemo.sdfВ»
'Создаем объект таблицы
dbt = New DataTable(В«CustomersВ»)
'Связываем объект команды и соединение
dbcm.Connection = dbc
'Создаем объект адаптера, в качестве аргумента передавая ему команду
dba = New SqlServerCe.SqlCeDataAdapter(dbcm)
'Адаптер выполняет команду, и результатом ее выполнения заполняет
'таблицу dba.Fill(dbt)
'Связываем элементы отображения данных с полями таблицы
TextBox4.DataBindings.Add(В«TextВ», dbt, В«CustomerIDВ»)
TextBox5.DataBindings.Add(В«TextВ», dbt, В«CompanyNameВ»)
TextBox6.DataBindings.Add(В«TextВ», dbt, В«ContactNameВ»)
TextBox7.DataBindings.Add(В«TextВ», dbt, В«CityВ»)
TextBox8.DataBindings.Add(В«TextВ», dbt, В«CountryВ»)
TextBox9.DataBindings.Add(В«TextВ», dbt, В«PhoneВ»)
TextBox10.DataBindings.Add(В«TextВ», dbt, В«FAXВ»)
End Sub7. Написать код процедуры нажатия кнопки Disconnect, который приведен в листинге 6.29. Листинг 6.29
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button2.Click
dbc.Close()
dbt.Clear()
TextBox4.DataBindings.Clear()
TextBox5.DataBindings.Clear()
TextBox6.DataBindings.Clear()
TextBox7.DataBindings.Clear()
TextBox8.DataBindings.Clear()
TextBox9.DataBindings.Clear()
TextBox10.DataBindings.Clear()
End SubОбратите внимание на необходимость в этом случае «отвязать» контекст, иначе в результате повторного присоединения к данным возникнет ошибка.
8. Обработка событий щелчка на кнопках навигации по набору данных, собранному в таблице, показана в листинге 6.30.
Листинг 6.30Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button4.Click
'Предыдущая запись
Me.BindingContext(dbt). Position – = 1
End SubPrivate Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button3.Click
'Первая запись
Me.BindingContext(dbt). Position = 0
End SubPrivate Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button6.Click
'Последняя запись
Me.BindingContext(dbt). Position = Me.BindingContext(dbt). Count – 1
End SubPrivate Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button5.Click
'Следующая запись
Me.BindingContext(dbt). Position += 1
End Sub9. Теперь можно запустить программу и нажать кнопку Connect. Компоненты TextBox будут заполнены информацией из таблицы Customers. Следует убедиться, что переход между записями осуществляется корректно. После нажатия кнопки Disconnect компоненты TextBox должны быть очищены (рис. 6.24).
Рис. 6.24. Работающее приложение.Таким образом было организовано отображение информации из таблицы базы данных. Теперь неплохо бы было организовать ввод информации.
10. К навигатору нужно добавить еще две кнопки, чтобы он выглядел так, как показано на рис. 6.25.
Рис. 6.25. Улучшенный навигатор.11. Для кнопки с изображением крестика нужно использовать обработчик, функциональность которого умещается в одну строку.
Me.BindingContext(dbt). CancelCurrentEdit()
12. Код обработчика нажатия кнопки с галочкой приведен в листинге 6.31. Листинг 6.31
Dim cmd As SqlServerCe.SqlCeCommand
cmd = New SqlServerCe.SqlCeCommand_
("UPDATE Customers SET Country = " + TextBox8.Text + " WHERE _
CustomerID = " + TextBox4.Text + " ", dbc)
If dbc.State = ConnectionState.Closed Then
dbc.Open()
End If
cmd.ExecuteNonQuery()13.В Рти РґРІРµ команды показывают, каким образом РјРѕР¶РЅРѕ отменить текущие изменения Рё как производится обновление данных РІ базе данных. Проект РЅСѓР¶РЅРѕ СЃРЅРѕРІР° запустить, нажать РєРЅРѕРїРєСѓ Connect, отредактировать поле Country Сѓ любой записи Рё нажать РєРЅРѕРїРєСѓ V. Затем следует разорвать соединение щелчком РЅР° РєРЅРѕРїРєРµ Disconnect Рё СЃРЅРѕРІР° соединиться СЃ базой данных. Рто позволит заметить, что изменения были внесены РІ таблицу. РќРѕ если СЃРЅРѕРІР° внести изменения РІ поле Country Рё нажать РєРЅРѕРїРєСѓ X, то изменения Р±СѓРґСѓС‚ отменены.
Впрочем, этот пример показывает лобовой подход, когда текст берется из элементов TextBox и вставляется в строку формируемого выражения SQL. Более красиво и правильно в этом случае воспользоваться параметризированной командой.
14. Необходимо изменить процедуру обработки щелчка на кнопке V при помощи кода, приведенного в листинге 6.32.
Листинг 6.32Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button7.Click
Dim cmd As SqlServerCe.SqlCeCommand
cmd = New SqlServerCe.SqlCeCommand("UPDATE Customers SET CompanyName_
=? ContactName =? City =? Country =? Phone=? FAX =? WHERE_
CustomerID =?", dbc)
cmd.Parameters.Add(В«@aВ», SqlDbType.NVarChar, 40)
cmd.Parameters.Add(В«@bВ», SqlDbType.NVarChar, 30)
cmd.Parameters.Add(В«@cВ», SqlDbType.NVarChar, 15)
cmd.Parameters.Add(В«@dВ», SqlDbType.NVarChar, 15)
cmd.Parameters.Add(В«@eВ», SqlDbType.NVarChar, 24)
cmd.Parameters.Add(В«@fВ», SqlDbType.NVarChar, 25)
cmd.Parameters.Add(В«@gВ», SqlDbType.NChar, 5)
cmd.Parameters.Item(В«@aВ»). Value = TextBox5.Text
cmd.Parameters.Item(В«@bВ»). Value = TextBox6.Text
cmd.Parameters.Item(В«@cВ»). Value = TextBox7.Text
cmd.Parameters.Item(В«@dВ»). Value = TextBox8.Text
cmd.Parameters.Item(В«@eВ»). Value = TextBox9.Text
cmd.Parameters.Item(В«@fВ»). Value = TextBox10.Text
cmd.Parameters.Item(В«@gВ»). Value = TextBox4.Text
If dbc.State = ConnectionState.Closed Then
dbc.Open()
End If
cmd.ExecuteNonQuery()
End SubТеперь пользователь может редактировать и обновлять все поля, выведенные на экран. Следует обратить внимание, что SQL Server CE поддерживает параметризированные запросы, но не воспринимает параметры по именам. Значения параметров подставляются в выражение SQL в том порядке, в каком они были добавлены к списку параметров. Связывание данных
В упражнении было видно, что для того, чтобы приложение установило соединение с базой данных, запросило необходимые данные, получило и разместило их, необходимо использовать компоненты из пространства имен System.Data.SqlServerCe. Но когда данные отображаются, используется возможность привязывать источники данных к обычным элементам отбражения. Способность образовывать связи с данными реализуется в этих элементах на уровне методов и свойств, которые рассматриваются в табл. 6.26.

