Фильтрация и поиск данных

DataView

Класс DataView представляет настраиваемое и допускающее привязку данных представление объекта DataTable, для сортировки, фильтрации, поиска, изменения и навигации.

Основная функция DataView – обеспечение привязки данных форм Windows и веб-форм. Кроме того объект DataView можно настроить для предоставления подмножество данных из объекта DataTable, что позволяет использовать несколько элементов управления, отображающих данные из одного объекта DataTable.

Получение данных DataView

Данные в объекте DataView хранятся в виде объектов DataRowView Объект DataRowView представляет собой настраиваемое отображение строки из объекта DataTable

Создание DataView

  • С использованием конструктора по умолчанию:
DataView custumersView=new DataView();
custumersView=custumers;
  • С использованием конструктора с одним параметром
DataView custumersView=new DataView(custumers);
  • С использованием конструктора с четырьмя параметрами
static void Main(string[] args)
        {
            string connectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ShopDB;Integrated Security=True";
            string commandString = "SELECT * FROM Customers";

            DataTable customers = new DataTable();
            customers.TableName = "Customers";

            SqlDataAdapter adapter = new SqlDataAdapter(commandString, connectionString);

            adapter.Fill(customers);

            // создание DataView c фильтром и сортировкой
            DataView customersView = new DataView(customers, "CustomerNo > 2", "LName, FName", DataViewRowState.Unchanged);

            foreach (DataRowView viewRow in customersView)
            {
                Console.WriteLine("CustomerNo: "+viewRow["CustomerNo"]);
                Console.WriteLine("{0} {1} {2}", viewRow["LName"], viewRow["FName"], viewRow["MName"]);
                Console.WriteLine(viewRow["City"]);
                Console.WriteLine(viewRow["Address1"]);
                Console.WriteLine(viewRow["Phone"]);

                Console.WriteLine();
            }
        }

Фильтрация и поиск

Элементы перечисления DataViewRowState задают свойство RowStateFilter объекта DataView, чтобы указать версии данных, которые требуется просмотреть.

Элементы перечисления DataViewRowState:

  • None – не показывать каких-либо значение
  • Unchanged – показывать неизмененные строки
  • Added – показывать добавленные строки
  • Deleted – показывать удаленные строки
  • ModifiedCurrent – показывать текущие значения строк, которые были изменены
  • ModifiedOriginal – показывать оригинальные значения измененных строк
  • OriginalRows – показывать оригинальные значения всех строк
  • CurrentRows – показывать текущие значения всех строк

Поиск данных с помощью DataView

Для поиска данных объект DataView имеет методы Find и FindRows. Оба эти метода могут производить поиск по отсортированным столбцам объекта DataView.
При этом метод Find предназначен для получения единственной строки, удовлетворяющей критерию поиска, а метод FindRows – массива строк.

// поиск данных в таблице с помощью метода Find объекта DataRowCollection в таблице с составным ключом

        static void Main(string[] args)
        {
            DataSet ds = new DataSet();

            string connecionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=ShopDB;Integrated Security=True";
            string commandString = "SELECT * FROM OrderDetails";

            SqlDataAdapter adapter = new SqlDataAdapter(commandString, connecionString);

            adapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
            adapter.Fill(ds);

            DataTable orderDetails = ds.Tables[0];

            DataRow customersRow = orderDetails.Rows.Find(new object[] { 1, 2 });

            foreach (DataColumn customersColumn in orderDetails.Columns)
                Console.WriteLine(customersColumn.ColumnName + " " + customersRow[customersColumn]);
        }

Обновлено: 27.02.2019 — 13:00

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.