Kniga-Online.club
» » » » Владимир Волков - Программирование для карманных компьютеров

Владимир Волков - Программирование для карманных компьютеров

Читать бесплатно Владимир Волков - Программирование для карманных компьютеров. Жанр: Программирование издательство неизвестно, год 2004. Так же читаем полные версии (весь текст) онлайн без регистрации и SMS на сайте kniga-online.club или прочесть краткое содержание, предисловие (аннотацию), описание и ознакомиться с отзывами (комментариями) о произведении.
Перейти на страницу:

в окне запроса ввести путь \<имя компьютера><имя папки> и нажать кнопку 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 DataTable

6. Написать код процедуры нажатия кнопки 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 Sub

7. Написать код процедуры нажатия кнопки 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.30

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button4.Click

'Предыдущая запись

Me.BindingContext(dbt). Position – = 1

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button3.Click

'Первая запись

Me.BindingContext(dbt). Position = 0

End Sub

Private 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 Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

Handles Button5.Click

'Следующая запись

Me.BindingContext(dbt). Position += 1

End Sub

9. Теперь можно запустить программу и нажать кнопку 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.32

Private 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.

Перейти на страницу:

Владимир Волков читать все книги автора по порядку

Владимир Волков - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки kniga-online.club.


Программирование для карманных компьютеров отзывы

Отзывы читателей о книге Программирование для карманных компьютеров, автор: Владимир Волков. Читайте комментарии и мнения людей о произведении.


Уважаемые читатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

  • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
  • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
  • 3. Просьба отказаться от нецензурной лексики.
  • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

Надеемся на Ваше понимание и благоразумие. С уважением, администратор kniga-online.


Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*