Программирование мобильных устройств на платформе .NET Compact Framework
Шрифт:
const string TRANSLATIONTABLE_ WORDFUNCTION_COLUMN = "WordFunction";
internal const int DS_WORDS_COLUMNINDEX_ENGLISHWORD = 0;
internal const int DS_WORDS_COLUMNINDEX_GERMANWORD = 1;
internal const int DS_WORDS_COLUMNINDEX_GERMANGENDER = 2;
internal const int DS_WORDS_COLUMNINDEX_WORDFUNCTION = 3;
static public System.Data.IDataReader GetListOfWords {
System.Data.SqlServerCe.SqlCeConnection conn = null;
conn = new System.Data.SqlServerCe.SqlCeConnection(CONNECT_STRING);
conn.Open;
System.Data.SqlServerCe.SqlCeCommand cmd = conn.CreateCommand;
cmd.ConmandText = "select " +
TRANSLATIONTABLE_ENGLISH_COLUMN + ", " +
TRANSLATIONTABLE_GERMAN_COLUMN + ", " +
TRANSLATIONTABLE_GERMANGENDER_COLUMN + ", " +
TRANSLATIONTABLE_WORDFUNCTION_COLUMN + " " + "from " +
TRANSLATIONTABLE_NAME;
//Выполнить
команду базы данных
System.Data.SqlServerCe.SqlCeDataReader myReader =
cmd.ExecuteReader(System.Data.CommandBehavior.SingleResult);
return myReader;
}
//------------------------------------------
//Создает базу данных в случае необходимости
//------------------------------------------
static public void CreateDatabaseIfNonExistant {
if (System.IO.File.Exists(DATABASE_NAME) == false) {
CreateAndFillDatabase;
}
}
//---------------------------------------
//Создает и наполняет данными базу данных
//---------------------------------------
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);
//Добавить другие слова...
Поделиться с друзьями: