KnigaRead.com/
KnigaRead.com » Компьютеры и Интернет » Программирование » Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework

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

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Иво Салмре, "Программирование мобильных устройств на платформе .NET Compact Framework" бесплатно, без регистрации.
Перейти на страницу:

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

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, _

  VocabularyWord.WordFunction.Noun)

End Sub


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

'Помещает слово в базу данных

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

Private Shared Sub InsertEnglishGermanWordPair( _

 ByVal cmd As System.Data.SqlServerCe.SqlCeCommand, _

 ByVal englishWord As String, ByVal germanWord As String, _

 ByVal germanWordGender As VocabularyWord.WordGender, _

 ByVal wordFunction As VocabularyWord.WordFunction)

 cmd.CommandText = "INSERT INTO " + TRANSLATIONTABLE NAME + _

  "(" + TRANSLATIONTABLE_ENGLISH_COLUMN + ", " + _

  TRANSLATIONTABLE_GERMAN_COLUMN + ", " + _

  TRANSLATIONTABLE_GERMANGENDER_COLUMN + ", " + _

  TRANSLATIONTABLE_WORDFUNCTION_COLUMN + _

  ") VALUES ('" _

  + englishWord + "', '" + germanWord + "', '" _

  + System.Convert.ToString(CType(germanWordGender, Integer)) + "', '"

  + System.Convert.ToString(CType(wordFunction, Integer)) + "')"


 cmd.ExecuteNonQuery()

End Sub

End Class

Листинг 14.7. Пример кода управления данными для GameData.cs

Option Strict On

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

'Код управления данными в памяти

'

'Этот код предназначен для управления представлением кода в памяти

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

Imports System


Friend Class GameData

'Массив списков для сохранения загружаемых данных

Private Shared m_vocabularyWords_All As _

 System.Collections.ArrayList

Private Shared m_vocabularyWords_Nouns As _

 System.Collections.ArrayList

Private Shared m_vocabularyWords Verbs As _

 System.Collections.ArrayList

Private Shared m_vocabularyWords_Adjectives As _

 System.Collections.ArrayList

Private Shared m_vocabularyWords Adverbs As _

 System.Collections.ArrayList

Private Shared m_vocabularyWords_Prepositions As _

 System.Collections.ArrayList


Public Shared ReadOnly Property _

 isGameDataInitialized() As Boolean

 Get

  'Инициализация данных игры, если слова загружены

  Return Not (m_vocabularyWords_All Is Nothing)

 End Get

End Property


'Возвращает коллекцию всех имеющихся слов

Public Shared ReadOnly Property _

 AllWords() As System.Collections.ArrayList

 Get

  'Загрузить данные, если они не были инициализированы

  If (m_vocabularyWords_All Is Nothing) Then

   InitializeGameVocabulary()

  End If

  Return m_vocabularyWords_All

 End Get

End property


'Возвращает коллекцию всех имеющихся имен существительных

Public Shared ReadOnly Property _

 Nouns() As System.Collections.ArrayList

 Get

  'Загрузить данные, если они не были инициализированы

  If (m_vocabularyWords_Nouns Is Nothing) Then

   InitializeGameVocabulary()

  End If

  Return m_vocabularyWords_Nouns

 End Get

End Property


'==========================================================

'Загружает данные из нашей базы данных

'==========================================================

Public Shared Sub InitializeGameVocabulary()

 'Создать новый массив списков для хранения наших слов

 m_vocabularyWords_All = New System.Collections.ArrayList

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