Главная » Языки программирования и собственно написание компьютерных программ

Обновление записей в таблице базы данных MS Access в Visual Basic

Одно из основных четырех действий над данными в БД (Select, Insert, Update и Delete) является модификация (Update, обновление) данных. Автор поставил задачу написать маленькую программу для обновления записей в таблице базы данных MS Access, но с большим удобством (гибкостью) управления программным кодом.

Рассматриваемая в данном примере программа имеет форму, сетку данных DataGridView, в которую из базы данных читается таблица при нажатии кнопки Читать из БД. Пользователь имеет возможность редактировать данные в этой таблице, после чего, нажав кнопку Сохранить в БД, данные в базе данных будут модифицированы, т. е. заменены новыми.

Для написания этой программы запускаем VB2010, заказываем новый проект New Project шаблона Windows Forms Application. Из панели Toolbox добавляем в форму элемент управления DataGridView и две командные кнопки. Программный код программы представлен ниже:

Обновление записей в таблице базы данных MS Access

‘ Программа обновляет записи (Update) в таблице базы данных MS Access
Imports System.Data.OleDb
PublicClass Form1
Private DS As DataSet
Private DA As OleDb.OleDbDataAdapter
Private CO AsNew OleDb.OleDbConnection("Data Source=""C:\vic.mdb"";User ID=Admin;Provider=""Microsoft.Jet.OLEDB.4.0"";")
Private CB As OleDb.OleDbCommandBuilder
‘ Dim COMMAND As OleDbCommand = New OleDbCommand или
Dim COMMAND = NewOleDbCommand
Private Sub Form1_Load(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text() ="Читать из БД"
Button2.Text() ="Сохранить в БД"
End Sub
Private Sub ЧИТАТЬ(ByVal sender As System.Object, ByVal e As System.EventArgs)Handles Button1.Click
‘ Читать из базы данных:
DS =New DataSet
If CO.State = ConnectionState.Closed Then CO.Open()
DA =New OleDb.OleDbDataAdapter("Select * From (БД телефонов)", CO)
CB =New OleDb.OleDbCommandBuilder(DA)
DA.Fill(DS,"БД телефонов")
DataGridView1.DataSource = DS.Tables("БД телефонов")
End Sub

Private Sub СОХРАНИТЬ(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button2.Click
‘ Сохранить в базе данных:
COMMAND.CommandText = "UPDATE (БД телефонов) SET (Номер телефона) = ?, ФИО = ?  WHERE ((Номер п/п) = ?)"
‘ Имя, тип и длина параметра:
COMMAND.Parameters.Add("Номер телефона",OleDbType.VarWChar, 50,"Номер телефона")
COMMAND.Parameters.Add("ФИО",OleDbType.VarWChar, 50,"ФИО")
COMMAND.Parameters.Add(NewOleDbParameter("Original_Номер_п_п",
OleDbType.Integer, 0, System.Data.ParameterDirection.
Input,False, CType(0,Byte), CType(0,Byte), "Номер п/п",
System.Data.DataRowVersion.Original,Nothing))
DA.UpdateCommand = COMMAND
COMMAND.Connection = CO
Try
‘ Update возврашает количество измененных строк:
Dim kol As Integer = DA.Update(DS, "БД телефонов")
MessageBox.Show("Обновлено " & kol & " записей")
Catch ex AsException
MessageBox.Show(ex.Message,"Недоразумение")
End Try
End Sub
EndClass

Вначале импортируем (Imports) пространство имен System.Data.OleDb, это обеспечит более короткие объявления объектов и манипулирования ими. Далее, как видно, мы имеем три процедуры обработки событий: загрузки формы, щелчок на кнопке Читать из БД и щелчок на кнопке Сохранить в БД. Чтобы объекты DataSet,DataAdapter, Connection, CommandBuilder и Command были видны в этих трех процедурах, объявляем эти объекты внешними внутри класса Form1.

При программировании чтения из базы данных на сетку DataGridView1 мы использовали объект CommandBuilder для демонстрации возможности чтения данных с помощью этого объекта, хотя могли бы организовать чтение из базы данных на сетку DataGridView1 так, как это было показано в предыдущих программах.

Представляет интерес программирование модификации записей базы данных. Эта возможность программирована при обработке события «щелчок мышью на кнопке» Сохранить в БД. Здесь свойству CommandText присвоено значение текста SQL-запроса. В качестве заменителей параметров используются вопросительные знаки. Как видно, в данном SQL-запросе имеют место три вопросительных знака. Этим трем вопросительным знакам соответствуют три параметра, которые должны указываться именно в порядке следования вопросительных знаков. Эти параметры задаем с использованием метода COMMAND.Parameters.Add. Здесь указываем имя поля (например, «Номер телефона»), тип, длину параметра и значение по умолчанию. Заметим, что третий параметр («Номер п/п») задается как новый, поскольку он не должен подлежать редактированию со стороны пользователя, а устанавливаться автоматически, независимо от пользователя.

Далее в блоке Try…Catch вызываем непосредственно метод DA.update, который возвращает количество (kol) обновленных записей. В случае неудачного обновления обрабатывается исключительная ситуация Exception, объект Exception обеспечивает соответствующее сообщение о недоразумении.

Добавить комментарий

Ваш комментарий появится после модерации.