Реклама:

this.dsVUZ1.Tables["Prep"].RowDeleting += new

DataRowChangeEventHandler(this.PrepRow_Deleting);

//---обработчик события

private void PrepRow_Deleting (object sender,System.Data.DataRowChangeEventArgs e) {

if ((string)e.Row["Rank"]=="доцент") {

MessageBox.Show("Запись нельзя удалить!");

throw new Exception ("Отказ удаления записи!");

}

}

_I

3.4.23.6. СобытиеRowDeleted

public delegate void DataRowChangeEventHandler( object sender, DataRowChangeEventArgs e );

Событие наступает после удаления записи. Параметр e обработчика события идентичен одноименному параметру, рассмотренному выше при описании обработчика события RowChanging.

Пример. Активизировать экранную кнопку btnUpdate (запись изменений в базу данных), если в таблице Prep удалена хотя бы одна запись.

//---подключим обработчик к таблице

this.dsVUZ1.Tables["Prep"].RowDeleted += new

DataRowChangeEventHandler(this.PrepRow_Deleted);

//---обработчик

private void PrepRow_Deleted (object sender,

System.Data.DataRowChangeEventArgs e)

{

btnUpdate.Enabled = true;

}

_I

3.4.24. Расчет агрегатных значений

Метод Compute таблицы данных позволяет вычислять значение выражения над столбцами записей этой таблицы:

public object Compute(string expression, string filter); Параметры:

expression - задает выражение с использованием агрегатных функций; filter - задает условие фильтрации; выражение expression рассчитывается только для записей, удовлетворяющих данному фильтру.

Примечание. В выражениях допускаются следующие агрегатные функции: Sum, Avg, Min, Max, Count, StDev, Var. Подробнее о синтаксисе выражений с их использованием см. 3.5.

Пример. Пусть в наборе данных ndl имеем таблицу Payments, содержащую сведения о приходе денежных средств по договорам, заключенным кафедрами вуза. Столбец KKзадает номер кафедры; столбец ProjectN- номер проекта; столбец Payment - сумму поступивших средств и rdat - дату их поступления. Реализуем в обработчике кнопки Расчет вычисление сумм:

• по всем договорам кафедры № 1;

• по договору № 123/11.

//---сумма поступления по кафедре № 1

decimal P1 = (decimal)nd1.Payments.Compute("SUM(Payment)", "KK = 1");

textBoxl.Text = P1.ToString();

//---сумма поступлений по проекту 123/11

decimal P2 = (decimal)nd1.Payments.Compute("SUM(Payment)",

"ProjectN = '123/11'"); textBox2.Text = P2.ToString();

Результат представлен на рис. 3.108.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 3.108

3.5. Столбцы данных

3.5.1. Основные свойства столбца

Столбец таблицы набора данных реализуется объектом типа System.Data.Da-taColumn. Рассмотрим основные свойства столбца.

Имя столбца хранится в свойстве

public string ColumnName {get; set;}

Это имя можно использовать для обращения к столбцу в коллекции столбов (типа DataColumnCollection, например в коллекции Columns таблицы набора данных).

Тип данных столбца хранится в свойстве DataType столбца: public Type DataType {get; set;}

Столбец может хранить данные следующих типов: Boolean, Byte, Char, DateTime, Decimal, Double, Int16, Int32, Int64, SByte, Single, String, TimeSpan, UInt16, UInt32, UInt64.


⇐ Предыдущая страница| |Следующая страница ⇒