Чтение онлайн

ЖАНРЫ

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

4. Дважды щелкните на элементе управления Button в окне конструктора форм. В автоматически сгенерированной и подключенной функции обработчика событий введите код функции buttonRunTest_Click из листинга 14.3.

5. Введите весь оставшийся код в тот же класс.

6. Установите для свойства MinimizeBox формы значение false. Благодаря этому во время выполнения в верхней правой части формы появится кнопка OK, с помощью которой вы легко сможете закрыть форму и выйти из приложения. Эта возможность оказывается очень полезной при многократном тестировании приложения.

7. Запустите приложение, нажав клавишу <F5>. Для запуска всех трех вариантов тестирования на выполнение следует щелкать на кнопке. После каждого прогона приложения должно появляться окно сообщений, содержащее результаты тестирования.

Листинг 14.3. Сравнение производительности различных вариантов доступа к данным с использованием объектов DataSet

System.Data.DataSet m_myDataSet; //Объект Dataset для теста

//Индексы столбцов и таблицы, подлежащие кэшированию

private bool m_indexesLookedUp = false;

private const int INVALID_INDEX = -1;

private int m_IndexOfTestColumn_CreditCard = INVALID_INDEX;

private int m_IndexOfTestColumn_TravelDate = INVALID_INDEX;

private int m_IndexOfTestTable = INVALID_INDEX;

//Столбцы данных и таблица, подлежащие кэшированию

System.Data.DataColumn m_TestColumn_CreditCard;

System.Data.DataColumn m_TestColumn_TravelDate;

private System.Data.DataTable m_TableCustomerInfo;

//3 вида тестов, которые мы можем выполнять

public enum testType {

textColumnLookup, cachedIndexLookup, cachedColumnObject

}

//Эти константы определяют размерные характеристики тестов

const int DUMMY_ROWS_OF_DATA = 100;

const int NUMBER_TEST_ITERATIONS = 500;

//Табличная информация

const string TABLE_NAME_PASSENGERINFO = "CustomerTravelInfo";

const string COLUMN_NAME_DATE_OF_TRAVEL = "DateOfTravel";

const string COLUMN_NAME_PASSENGER_NAME = "PassengerName";

const string COLUMN_NAME_PASSENGER_CREDIT_CARD = "PassengerCreditCard";

const string TEST_CREDIT_CARD = "IvoCard-987-654-321-000";

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

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

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

private void createDataSet {

//1. Создать новый объект DataSet

m_myDataSet = new System.Data.DataSet("TravelService Dataset");

//2. Добавить объект DataTable в объект ADO.NET DataSet

System.Data.DataTable myTestTable;

myTestTable = m_myDataSet.Tables.Add(TABLE_NAME _PASSENGERINFO);

//Добавить 2 столбца в таблицу

//Добавить столбец данных в таблицу DataTable набора данных DataSet

myTestTable.Columns.Add(COLUMN_NAME_DATE_OF_TRAVEL,typeof(System.DateTime));

//Добавить столбец строк в таблицу DataTable набора данных

DataSet myTestTable.Columns.Add(COLUMN_NAME_PASSENGER NAME,typeof(string));

//Добавить столбец строк в таблицу DataTable набора данных DataSet

myTestTable.Columns.Add(COLUMN_NAME_PASSENGER_CREDIT_CARD,typeof(string));

//Данные для размещения в строках данных

object[] objArray;

objArray = new object[3];

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

//Добавить строки данных в таблицу

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

System.Text.StringBuilder buildTestString;

buildTestString = new System.Text.StringBuilder;

for (int addItemsCount = 0; addItemsCount < DUMMY_ROWS_OF_DATA; addItemsCount++) {

//Выбрать день отъезда пассажира

objArray[0] = System.DateTime.Today.AddDays(addItemsCount);

//Выбрать имя пассажира

buildTestString.Length = 0;

buildTestString.Append("TestPersonName");

buildTestString.Append(addItemsCount);

objArray[1] = buildTestString.ToString;

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

buildTestString.Length = 0;

buildTestString.Append("IvoCard-000-000-0000-");

buildTestString.Append(addItemsCount);

objArray[2] = buildTestString.ToString;

//Добавить элементы массива в строку набора данных

myTestTable.Rows.Add(objArray);

}

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

objArray[0] = System.DateTime.Today;

objArray[1] = "Ms. TestPerson";

objArray[2] = TEST_CREDIT_CARD;

//Добавить элементы массива в строку набора данных

myTestTable.Rows.Add(objArray);

Поделиться с друзьями: