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

Листинг 14.5. Пример пользовательского управления данными — код, помещаемый в форму Form1.cs

//Создает базу данных

private void buttonCreateDatabase_Click(object sender, System.EventArgs e) {

 DatabaseAccess.CreateAndFillDatabase;

}


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

private void buttonLoadGameData_Click(object sender, System.EventArgs e) {

 //Очистить текстовое окно

 textBox1.Text = "";

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

 GameData.InitializeGameVocabulary;

 //Обойти все слова и добавить их в текстовый список

 System.Text.StringBuilder thisStringBuilder;

 thisStringBuilder = new System.Text.StringBuilder;


 foreach (VocabularyWord thisWord in GameData.AllWords) {

  thisStringBuilder.Append(thisWord.EnglishWord);

  thisStringBuilder.Append(" = ");

  thisStringBuilder.Append(thisWord.GermanWordWithArticleIfExists);

  thisStringBuilder.Append("\r\n"); //Новая строка

 }

 //Отобразить список слов в текстовом окне

 textBox1.Text = thisStringBuilder.ToString;

}

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

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

//Код доступа к базе данных

//

//Этот класс управляет доступом к базе данных наших приложений

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

using System;

internal class DatabaseAccess {

 const string DATABASE_NAME = "LearnGerman.sdf";

 const string CONNECT_STRING = "Data Source = " + DATABASE_NAME + "; Password = ''";

 const string TRANSLATIONTABLE_NAME = "TranslationDictionary";

 const string TRANSLATIONTABLE_ENGLISH_COLUMN = "EnglishWord";

 const string TRANSLATIONTABLE_GERMAN_COLUMN = "GermanWord";

 const string TRANSLATIONTABLE_GERMANGENDER_COLUMN = "GermanGender";

 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;

 }


Перейти на страницу:

Похожие книги

Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

Эндрю Хант , Дэвид Томас , А. Алексашин

Программирование / Книги по IT
Разработка ядра Linux
Разработка ядра Linux

В книге детально рассмотрены основные подсистемы и функции ядер Linux серии 2.6, включая особенности построения, реализации и соответствующие программны интерфейсы. Рассмотренные вопросы включают: планирование выполнения процессов, управление временем и таймеры ядра, интерфейс системных вызовов, особенности адресации и управления памятью, страничный кэш, подсистему VFS, механизмы синхронизации, проблемы переносимости и особенности отладки. Автор книги является разработчиком основных подсистем ядра Linux. Ядро рассматривается как с теоретической, так и с прикладной точек зрения, что может привлечь читателей различными интересами и потребностями.Книга может быть рекомендована как начинающим, так и опытным разработчикам программного обеспечения, а также в качестве дополнительных учебных материалов.

Роберт Лав

Программирование, программы, базы данных / Программирование / Книги по IT