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

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

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

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 140 141 142 143 144 145 146 147 148 ... 206
Перейти на страницу:

 //---------------------------------------

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

 //---------------------------------------

 static public void CreateAndFillDatabase() {

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

  if (System.IO.File.Exists(DATABASE_NAME)) {

   System.IO.File.Delete(DATABASE_NAME);

  }

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

  System.Data.SqlServerCe.SqlCeEngine sqlCeEngine;

  sqlCeEngine = new System.Data.SqlServerCe.SqlCeEngine(CONNECT_STRING);

  sqlCeEngine.CreateDatabase();

  //-------------------------------------

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

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

  //-------------------------------------

  System.Data.SqlServerCe.SqlCeConnection conn = null;

  try {

   conn = new System.Data.SqlServerCe.SqlCeConnection(CONNECT_STRING);

   conn.Open();

   System.Data.SqlServerCe.SqlCeCommand cmd = 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 (System.Exception eTableCreate) {

   System.Windows.Forms.MessageBox.Show("Error occurred adding table :" + eTableCreate.ToString());

  } finally {

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

   conn.Close();

  }

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

  System.Windows.Forms.MessageBox.Show("Created langauge database!");

 }

 static private void FillDictionary(System.Data.SqlServerCe.SqlCeCommand cmd) {

  //Глаголы

  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.WordFunction.Noun);

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

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

   VocabularyWord.WordGender.Neuter, VocabularyWord.WordFunction.Noun);

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

   VocabularyWord.WordGender.Neuter, VocabularyWord.WordFunction.Noun);

 }

 //----------------------------

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

 //----------------------------

 static private void InsertEnglishGermanWordPair(

  System.Data.SqlServerCe.SqlCeCommand cmd,

  string englishWord, string germanWord,

  VocabularyWord.WordGender germanWordGender,

  VocabularyWord.WordFunction 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(((int) germanWordGender))+ "', '" +

   System.Convert.ToString(((int) wordFunction)) + "' )";

  cmd.ExecuteNonQuery();

 }

} //Конец класса

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

//-----------------------------------------------------------------

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

//

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

//-----------------------------------------------------------------

using System;

internal class GameData {

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

 private static System.Collections.ArrayList m_vocabularyWords All;

 private static System.Collections.ArrayList m_vocabularyWords_Nouns;

 private static System.Collections.ArrayList m_vocabularyWords_Verbs;

 private static System.Collections.ArrayList m_vocabularyWords_Adjectives;

 private static System.Collections.ArrayList m_vocabularyWords_Adverbs;

 private static System.Collections.ArrayList m_vocabularyWords_Prepositions;

 public static bool isGameDataInitialized {

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

  get {

   return (m_vocabularyWords_All != null);

  }

 }

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

 public static System.Collections.ArrayList AllWords {

  get {

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

   if (m_vocabularyWords_All == null) {

    InitializeGameVocabulary();

   }

   return m_vocabularyWords_All;

  }

 }

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

 public static System.Collections.ArrayList Nouns {

  get {

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

   if (m_vocabularyWords_Nouns == null) {

    InitializeGameVocabulary();

   }

   return m_vocabularyWords_Nouns;

  }

 }

 //==========================================================

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

 //==========================================================

 static public void InitializeGameVocabulary() {

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

  m_vocabularyWords_All = new System.Collections.ArrayList();

  m_vocabularyWords_Nouns = new System.Collections.ArrayList();

  m_vocabularyWords Verbs = new System.Collections.ArrayList();

  m_vocabularyWords_Adjectives = new System.Collections.ArrayList();

  m_vocabularyWords_Adverbs = new System.Collections.ArrayList();

  m_vocabularyWords_Prepositions = new System.Collections.ArrayList();

  System.Data.IDataReader dataReader;

  dataReader = DatabaseAccess.GetListOfWords();

  VocabularyWord newWord;

  //Обойти все записи

  while (dataReader.Read()) {

   //Поместить данные для только что считанного слова в класс

   newWord = new VocabularyWord(

    dataReader.GetString(DatabaseAccess.DS_WORDS_COLUMNINDEX_ENGLISHWORD),

    dataReader.GetString(DatabaseAccess.DS_WORDS COLUMNINDEX_GERMANWORD),

    (VocabularyWord.WordGender)dataReader.GetInt32(DatabaseAccess.DS_WORDS_COLUMNINDEX_GERMANGENDER),

    (VocabularyWord.WordFunction)dataReader.GetInt32(DatabaseAccess.DS_WORDS_COLUMNINDEX_WORDFUNCTION));

   //Добавить новое слово в массив списков

   m_vocabularyWords_All.Add(newWord);

   //Слова могут принадлежать нескольким группам, поэтому необходимо

   //выполнить проверку с использованием операции логического И

   //для проверки того, что слово относится к данной категории

   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Noun) ! = 0) {

    m_vocabularyWords_Nouns.Add(newWord);

   }

   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Verb) != 0) {

    m_vocabularyWords_Verbs.Add(newWord);

   }

   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Adjective) != 0) {

    m_vocabularyWords Adjectives.Add(newWord);

   }

   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Adverb) != 0) {

    m_vocabularyWords Adverbs.Add(newWord);

   }

   if ((newWord.getWordFunction & VocabularyWord.WordFunction.Preposition) != 0) {

1 ... 140 141 142 143 144 145 146 147 148 ... 206
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Программирование мобильных устройств на платформе .NET Compact Framework - Иво Салмре.
Комментарии