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

ЖАНРЫ

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

numberRecordsChanged =

changeDayOfTravel_CachedColumns(TEST_CREDIT_CARD, newDate);

break;

}

//Убедиться в том, что тест выполняется, как и ожидалось...

if (numberRecordsChanged != 1) {

System.Windows.Forms.MessageBox.Show("No matching records found. Test aborted!");

return;

}

}

//Получить время, которое потребовалось для выполнения теста

PerformanceSampling.StopSample(testNumber);

//Обычный курсор

System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Default;

//Отобразить результаты выполнения теста

string runInfo = NUMBER_TEST_ITERATIONS.ToString + "x" +

DUMMY_ROWS_OF_DATA.ToString + ": ";

System.Windows.Forms.MessageBox.Show(runInfo +

PerformanceSampling.GetSampleDurationText(testNumber));

}

//ФУНКЦИЯ ПОИСКА, ОБЛАДАЮЩАЯ НИЗКОЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

private int changeDayOfTravel_ textColumnLookup(string creditCardNumber, System.DateTime newTravelDate) {

int numberRecordsChanged = 0;

//Найти имя таблицы

System.Data.DataTable dataTable_Customers;

//НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск в таблице, используя

//сравнение строк!

dataTable_Customers = m_myDataSet.Tables[TABLE_NAME_PASSENGERINFO];

foreach (System.Data.DataRow currentCustomerRow in dataTable_Customers.Rows) {

string currentCreditCard;

//НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск в таблице, используя

//сравнение строк!

currentCreditCard = (string)currentCustomerRow[COLUMN_NAME_PASSENGER_CREDIT_CARD];

//Проверить, является ли данная кредитная карточка искомой

if (creditCardNumber == currentCreditCard) {

//Изменить дату отъезда

//НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск столбца, используя

//сравнение строк!

System.DateTime currentTravelDate =

(System.DateTime)currentCustomerRow[COLUMN_NAME_DATE_OF_TRAVEL];

if (currentTravelDate != newTravelDate) {

//НИЗКАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Осуществить поиск столбца, используя

//сравнение строк!

currentCustomerRow[COLUMN_NAME_DATE_OF_TRAVEL] = newTravelDate;

numberRecordsChanged++;

}

} //endif: сравнение строк

} //end foreach

return numberRecordsChanged; //Количество обновленных записей

}

//ФУНКЦИЯ, ХАРАКТЕРИЗУЮЩАЯСЯ НЕСКОЛЬКО ЛУЧШЕЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

private int changeDayOfTravel_cachedColumnIndex(string creditCardNumber, System.DateTime newTravelDate) {

int numberRecordsChanged = 0;

//Поиск имени таблицы

System.Data.DataTable dataTable_Customers;

//ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: использовать кэшированный индекс

dataTable_Customers = m_myDataSet.Tables[m_IndexOfTestTable];

foreach (System.Data.DataRow currentCustomerRow in dataTable_Customers.Rows) {

string currentCreditCard;

//ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: использовать кэшированный индекс столбца!

currentCreditCard =

(string)currentCustomerRow[m_IndexOfTestColumn_CreditCard];

//Проверить, совпадает ли номер кредитной карточки...

if (creditCardNumber == currentCreditCard) {

//Изменить дату отъезда

//ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

System.DateTime currentTravelDate =

(System.DateTime)currentCustomerRow[m_IndexOfTestColumn_TravelDate];

if (currentTravelDate != newTravelDate) {

//ЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс

//столбца!

currentCustomerRow[m_IndexOfTestColumn_TravelDate] = newTravelDate;

numberRecordsChanged++;

}

}

}

return numberRecordsChanged; //Количество обновленных записей

}

//ФУНКЦИЯ, ОБЛАДАЮЩАЯ НАИЛУЧШЕЙ ПРОИЗВОДИТЕЛЬНОСТЬЮ

private int changeDayOfTravel_CachedColumns(string creditCardNumber, System.DateTime newTravelDate) {

int numberRecordsChanged = 0;

//Найти имя таблицы

System.Data.DataTable dataTable_Customers = m_TableCustomerInfo;

foreach (System.Data.DataRow currentCustomerRow in dataTable_Customers.Rows) {

string currentCreditCard;

//НАИЛУЧШАЯ ПРОИЗВОДИТЕЛЬНОСТЬ: Использовать кэшированный индекс столбца!

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