Реклама:

ModifCounter.AddCnt ++;

break;

}

//---запись изменена

case ListChangedType.ItemChanged: case ListChangedType.ItemMoved : {

ModifCounter.UpdCnt ++;

break;

}

//---запись удалена

case ListChangedType.ItemDeleted : { ModifCounter.DelCnt ++; break;

}

}

}

Следует помнить, что если мы добавим в просмотр запись, не удовлетворяющую условию фильтрации просмотра, то для нее приведенный выше обработчик сработает дважды: сначала со значением e.ListChangedType = ListChangedType.Item Added, а затем, когда запись автоматически удалится из просмотра, со значением

e.ListChangedType = ListChangedType.ItemDeleted.

7.1.9. Поиск записей в просмотре

Поиск записи в просмотре ведется по столбцам, указанным в свойстве Sort просмотра (по столбцам, по которым отсортированы записи в просмотре). Выполняется просмотр методами, возвращающими либо индекс строки, удовлетворяющей условию поиска, либо массив таких записей.

Метод Find возвращает целочисленный индекс первой записи, удовлетворяющей заданному значению столбца (столбцов) сортировки, и -1 в случае, когда ни одной такой записи не найдено:

public int Find( object key); public int Find( object[] keys );

Параметр key используется для задания поиска по одному полю:

int ndx = dvKafSostav.Find("Технический");

Параметр keys употребляют при поиске по нескольким полям.

Пример. Пусть просмотр отсортирован по полям FAKULTET, NAZV. Показать значение поля KK записи, у которых поля сортировки содержат соответственно значения "Технический" и "Газовой сварки".

int ndx = dvKafSostav.Find(new object[]{"Технический",

"Газовой сварки"});

if (ndx == -1)

{

MessageBox.Show("Запись не найдена");

}

else

{

MessageBox.Show("Найдена запись KK = " +

dvKafSostav[ndx]["KK"]);

}

_I

Метод FindRows возвращает массив записей, удовлетворяющих условию поиска, задаваемого параметром key или keys. Условия поиска задается аналогично тому, как это описано выше для метода Find.

public DataRowView[] FindRows( object key); public DataRowView[] FindRows( object[]keys);

Пример. Пусть просмотр отсортирован по полям FAKULTET, NAZV. Записать в элемент управления listBox1 значение поля Nazv всех записей, у которых столбцы сортировки содержат соответственно значения "Технический" и "Газовой сварки".

DataRowView[] drv = dvKafSostav.FindRows(

new о^е^[]{"Технический", "Газовой сварки"}); listBox1.Items.Clear(); foreach(DataRowView d in drv) {

listBox1.Items.Add(d["Nazv"].ToString());

}

7.1.10. Просмотр как подмножество записей, удовлетворяющих произвольному условию

Условие фильтрации, задаваемое для просмотра, не всегда задается в явном виде. Ниже приводится пример с заранее неизвестным условием фильтрации, интерактивно задаваемым пользователем во время выполнения приложения.

Пример. В просмотре dvx показывать те записи таблицы Kaf набора данных dsVUZ1, которые в поле NAZV содержат вхождение символов, вводимых пользователем в текстовое поле элемента управления textBox1.

System.Data.DataView dvx;


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