Вход/Регистрация
Обработка баз данных на Visual Basic®.NET
вернуться

Прайс Кевин Т.

Шрифт:

В теле определения класса для формы frmArchive включите код из листинга 4.10.

Листинг 4.10. Код архивирования данных в новой таблице

Private Sub frmArchive_Load(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles MyBase.Load

 lstYears.Items.Add("1995")

 lstYears.Items.Add("1996")

 lstYears.Items.Add("1997")

 lstYears.Items.Add("1998")

 lstYears.Items.Add("1999")

 lstYears.Items.Add("2000")

 lstYears.Items.Add("2001")

 lstYears.Items.Add("2002")

 ' Указание значения по умолчанию.

 lstYears.SelectedIndex = 0

End Sub

Private Sub btnCancel_Click(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles btnCancel.Click

 Me.Close

End Sub

Private Sub btnOK_Click(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles btnOK.Click

 Dim sql As String

 Dim result As Integer

 Dim records As Integer

 Dim SelectedYear As String

 ' Создание экземпляров объектов Connection и Command.

 Dim cnn As SqlConnection = New SqlConnection( _

"server=localhost;uid=sa;database=novelty")

 Dim cmd As New SqlCommand

 Dim trans As SqlTransaction

 ' Получение значения года.

 SelectedYear = lstYears.SelectedItem.ToString

 ' Размещение кода внутри блока Try-Catch для

 ' обработки исключительных ситуаций.

 Try

' Открытие объекта Connection и запуск транзакции.

cnn.Open

trans = cnn.BeginTransaction

' Включение команды в транзакцию.

cmd.Connection = cnn

cmd.Transaction = trans

' Указание команды SQL для вставки соответствующих

' записей в архивную таблицу.

sql = "SELECT * INTO tblOrder" & SelectedYear & _

FROM tblOrder WHERE year (OrderDate) = " & SelectedYear

' Передача текста команды SQL в транзакцию.

cmd.CommandText = sql

result = cmd.ExecuteNonQuery

' Отображение результатов вставки записей в архивную таблицу.

If result > 0 Then

records = result MessageBox.Show(records & _

" records inserted successfully into tblOrder" & SelectedYear)

Else

MessageBox.Show( _

"No records inserted into tblOrder" & SelectedYear)

' При отсутствии записей созданная таблица

' не нужна и транзакцию нужно откатить.

trans.Rollback

End If

If records > 0 Then

' Команда SQL для удаления соответствующих

' записей из текущей таблицы.

sql = "delete FROM tblOrder WHERE year (OrderDate) = " _

& SelectedYear

' Эта команда находится в той же транзакции.

cmd.CommandText = sql

result = cmd.ExecuteNonQuery

' Показать результаты удаления записей.

If result = records Then

MessageBox.Show(records & _

" records deleted successfully")

' Все действия успешно выполнены, можно фиксировать транзакцию.

trans.Commit

Else

MessageBox.Show("No records deleted!")

  • Читать дальше
  • 1
  • ...
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: