Выбрать главу

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!")

End Sub

Private Shared Sub FillDictionary( _

 ByVal cmd As System.Data.SqlServerCe.SqlCeCommand)

 'Глаголы

 InsertEnglishGermanWordPair(cmd, "to pay", "zahlen", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Verb)

 InsertEnglishGermanWordPair(cmd, "to catch", "fangen", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Verb)

 'Добавить другие слова.

 'Местоимения

 InsertEnglishGermanWordPair(cmd, "What", "was", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Pronoun)

 'Добавить другие слова.

 'Наречия

 InsertEnglishGermanWordPair(cmd, "where", "wo", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Adverb)

 InsertEnglishGermanWordPair(cmd, "never", "nie", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Adverb)

 'Добавить другие слова.

 'Предлоги

  InsertEnglishGermanWordPair(cmd, "at the", "am", _

   VocabularyWord.WordGender.notApplicable, _

   VocabularyWord.WordFunction.Preposition)

 'Имена прилагательные

 InsertEnglishGermanWordPair(cmd, "invited", "eingeladen", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Verb)

 InsertEnglishGermanWordPair(cmd, "yellow", "gelbe", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Adjective)

 InsertEnglishGermanWordPair(cmd, "one", "eins", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Adjective)

 InsertEnglishGermanWordPair(cmd, "two", "zwei", _

  VocabularyWord.WordGender.notApplicable, _

  VocabularyWord.WordFunction.Adjective)

 'Имена существительные мужского рода

 InsertEnglishGermanWordPair(cmd, "Man", "Mann", _

  VocabularyWord.WordGender.Masculine, _

  VocabularyWord.WordFunction.Noun)

 InsertEnglishGermanWordPair(cmd, "Marketplace", "Marktplatz", _

  VocabularyWord.WordGender.Masculine, _

  VocabularyWord.WordFunction.Noun)

 InsertEnglishGermanWordPair(cmd, "Spoon", "Löffel", _

  VocabularyWord.WordGender.Masculine, _

  VocabularyWord.WordFunction.Noun)

 'Имена существительные женского рода

 InsertEnglishGermanWordPair(cmd, "Woman", "Frau", _

  VocabularyWord.WordGender.Feminine, _

  VocabularyWord.WordFunction.Noun)

 InsertEnglishGermanWordPair(cmd, "Clock", "Uhr", _

  VocabularyWord.WordGender.Feminine, _

  VocabularyWord.WordFunction.Noun)

 InsertEnglishGermanWordPair(cmd, "Cat", "Katze", _

  VocabularyWord.WordGender.Feminine, _

  VocabularyWord.KordFunction.Noun)

 'Имена существительные среднего рода

 InsertEnglishGermanWordPair(cmd, "Car", "Auto", _

  VocabularyWord.WordGender.Neuter, _

  VocabularyWord.WordFunction.Noun)

 InsertEnglishGermanWordPair(cmd, "Book", "Buch", _

  VocabularyWord.WordGender.Neuter, _