Чтение онлайн

ЖАНРЫ

Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:

Option Strict On

'----------------------------------------------------------

'Код доступа к базе данных: Этот класс управляет доступом в

'базу данных наших приложений

'----------------------------------------------------------

Imports System

Friend Class DatabaseAccess

Const DATABASE_NAME As String = "LearnGerman.sdf"

Const CONNECT_STRING As String = _

"Data Source = " + DATABASE_NAME + "; Password = ''"

Const TRANSLATIONTABLE_NAME As String = "TranslationDictionary"

Const TRANSLATIONTABLE_ENGLISH_COLUMN As String = "EnglishWord"

Const TRANSLATIONTABLE_GERMAN_COLUMN As String = "GermanWord"

Const TRANSLATIONTABLE_GERMANGENDER_COLUMN As String = "GermanGender"

Const TRANSLATIONTABLE_WORDFUNCTION_COLUMN As String = "WordFunction"

Friend Const DS_WORDS_COLUMNINDEX_ENGLISHWORD As Integer = 0

Friend Const DS_WORDS_COLUMNINDEX_GERMANWORD As Integer = 1

Friend Const DS_WORDS_COLUMNINDEX_GERMANGENDER As Integer = 2

Friend Const DS_WORDS_COLUMNINDEX_WORDFUNCTION As Integer = 3

Public Shared Function GetListOfWords As _

System.Data.IDataReader

Dim conn As System.Data.SqlServerCe.SqlCeConnection = Nothing

conn = New System.Data.Sq]ServerCe.SqlCeConnection( _

CONNECT_STRING)

conn.Open

Dim cmd As System.Data.SqlServerCe.SqlCeCommand = _

conn.CreateCommand

cmd.CommandText = "select " + _

TRANSLATIONTABLE_ENGLISH_COLUMN + ", " _

+ TRANSLATIONTABLE_GERMAN_COLUMN + ", " _

+ TRANSLATIONTABLE_GERMANGENDER_COLUMN + ", " _

+ TRANSLATIONTABLE_WORDFUNCTION_COLUMN + " " _

+ "from " + TRANSLATIONTABLE_NAME

'Выполнить команду базы данных

Dim myReader As System.Data.SqlServerCe.SqlCeDataReader = _

cmd.ExecuteReader(System.Data.CommandBehavior.SingleResult)

Return myReader

End Function

'------------------------------------------

'Создает базу данных в случае необходимости

'------------------------------------------

Public Shared Sub CreateDatabaseIfNonExistant

If (System.IO.File.Exists(DATABASE_NAME) = False) Then

CreateAndFillDatabase

End If

End Sub

'---------------------------------------

'Создает и наполняет данными базу данных

'---------------------------------------

Public Shared Sub CreateAndFillDatabase

'Удалить базу данных, если она уже существует

If (System.IO.File.Exists(DATABASE_NAME)) Then

System.IO.File.Delete(DATABASE_NAME)

End If

'Создать новую базу данных

Dim sqlCeEngine As System.Data.SqlServerCe.SqlCeEngine

sqlCeEngine = New System.Data.SqlServerCe.SqlCeEngine( _

CONNECT_STRING)

sqlCeEngine.CreateDatabase

'-------------------------------------

'Попытаться подключиться к базе данных

'и наполнить ее данными

'-------------------------------------

Dim conn As System.Data.SqlServerCe.SqlCeConnection = Nothing

Try

conn = New System.Data.SqlServerCe.SqlCeConnection( _

CONNECT_STRING)

conn.Open

Dim cmd As System.Data.SqlServerCe.SqlCeCommand = _

conn.CreateCommand

'Создает таблицу перевода

'Поля:

' 1. Слова на английском языке (English)

' 2. Слова на немецком языке (German)

' 3. Грамматический род (Gender)

' 4. Тип слова

cmd.CommandText = "CREATE TABLE " + TRANSLATIONTABLE_NAME _

+ " (" + _

TRANSLATIONTABLE_ENGLISH_COLUMN + " ntext" + ", " + _

TRANSLATIONTABLE_GERMAN COLUMN + " ntext" + ", " + _

TRANSLATIONTABLE_GERMANGENDER_COLUMN + " int" + ", " + _

TRANSLATIONTABLE_WORDFUNCTION_COLUMN + " int" + ")"

cmd.ExecuteNonQuery

'Наполнить базу данных словами

FillDictionary(cmd)

Catch eTableCreate As System.Exception

MsgBox("Error occured adding table :" + eTableCreate.ToString)

Finally

'Всегда закрывать базу данных по окончании работы

conn.Close

End Try

'Информировать пользователя о создании базы данных

MsgBox("Created language database!")

Поделиться с друзьями: