Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 8 лет назад пользователемДанила Ухтомский
1 Классы из пространства имен System.Data Object DataRow MarshalByValueComponent DataSet DataTable DataView DataViewManager DataColumn Constraint ForeignKeyConstraint UniqueConstraint DataRelation В пространство имен System.Data входят классы, поддерживающие клиентскую часть архитектуры ADO.NET. Класс DataSet состоит из набора таблиц DataTable, которые могут содержать данные, полученные из разных источников. Классы DataView и DataViewManager используются для представлений таблицы, классы DataRow и DataColumn - для строк и столбцов таблицы. Классы DataRelation, Constraint, ForeignKeyConstraint и UniqueConstraint используются для описания связей между таблицами и ограничений для столбцов. В пространстве имен System.Data также определены делегаты для обработчиков событий, классы исключений и перечисления.
2 Класс DataTable Класс DataTable описывает таблицу данных и содержит коллекции строк (объектов DataRow ) и столбцов (DataColumn). Коллекция столбцов определяет схему (schema) таблицы. Строки таблицы состоят из полей, отвечающих схеме таблицы. Свойства Rows и Columns дают доступ к коллекции строк и столбцов таблицы: public DataRowCollection Rows {get;} public DataColumnCollection Columns {get;} В коллекциях определены индексаторы, причем доступ к элементам коллекций возможен как по номеру, так и по имени объекта. Открытые конструкторы класса DataTable После создания объекта DataTable с использованием открытых конструкторов класса он не имеет схемы. Чтобы определить схему таблицы DataTable, необходимо создать объекты DataColumn и добавить их к коллекции Columns таблицы. DataTable(); DataTable( string tableName );
3 Класс DataColumn DataColumn(); DataColumn( string columnName ); DataColumn( string columnName, Type dataType ); При создании столбцов DataColumn используется конструктор класса или одна из перегруженных версий метода Add класса DataColumnCollection. Некоторые конструкторы класса DataColumn В приведенном фрагменте кода создается таблица с именем Sample_DataTable, в которую добавляются столбцы. Для каждого столбца задается имя и тип данных в столбце. public Data_5() { tbl = new DataTable("Sample_DataTable"); tbl.Columns.Add("String_Column", typeof(string)); tbl.Columns.Add("Double_Column", typeof(double)); tbl.Columns.Add("Bool_Column", typeof(bool)); tbl.Columns.Add("DateTime_Column", typeof(DateTime)); tbl.Columns.Add("Point_Column", typeof(Point)); tbl.Columns.Add("Color_Column", typeof(Color)); tbl.Columns.Add("DataItem_3_Column", typeof(DataItem_3)); AddDefaults(); }
4 Класс DataRow DataRow NewRow(); В таблице DataTable данные хранятся в виде строк – объектов типа DataRow. Класс DataRow не имеет открытых конструкторов. Ссылку на новую строку в таблице можно получить как возвращаемое значение метода NewRow класса DataTable. Строка DataRow добавляется к коллекции строк таблицы Rows при вызове метода Add класса DataRowCollection. void Add( DataRow row ); virtual DataRow Add( object[] values ); Доступ к отдельным полям (столбцам) строки таблицы дают индексаторы, которые принимают как параметр номер или имя столбца. object this[ string columnName ] {get; set;} object this[ DataColumn column ] {get; set;} object this[ int columnIndex ] {get; set;}
5 Редактирование данных таблицы Класс DataTable поддерживает средства для восстановления (rollback) исходных значений, которые хранились в таблице до ее изменения (в том числе программного). Для каждой строки таблицы поддерживается четыре версии: Current – измененные значения; Original – значения до изменения; Proposed – существует только в процессе редактирования ; Default – одна из предыдущих версий (зависит от состояния строки). Только после вызова одного из следующих методов класса DataTable, изменения в таблице либо принимаются, либо восстанавливаются исходные значения. public void AcceptChanges(); public virtual void RejectChanges(); Можно получить значения полей для разных версий строки с помощью определенных в классе DataRow индексаторов, указав соответствующее значение перечисления DataRowVersion. Среди значений перечисления есть Current и Original. object this[ DataColumn column, DataRowVersion version ] {get;} object this[ string columnName, DataRowVersion version ] {get;} object this[ int columnIndex, DataRowVersion version ] {get;}
6 Класс DataView Класс DataView дает возможность создать несколько представлений (view) для одного и того же множества данных из объекта DataTable, используя различные критерии сортировки и/или фильтрации. Класс DataView всегда связан с объектом DataTable. С каждым объектом DataTable всегда связан объект DataView - представление по умолчанию. Ссылку на него можно получить через свойство класса DataTable: public DataView DefaultView {get;} Другие представления для таблицы можно создать с помощью конструкторов класса DataView. public DataView(); public DataView(DataTable);
7
Привязка к DataTable В примере представление по умолчанию DefaultView для объекта DataTable используется как источник данных для элемента управления ListBox и как контекст данных окна приложения: public partial class Window1 : Window { Data_5 data = new Data_5(); private void Window_Loaded(object sender, RoutedEventArgs e) { this.DataContext = data.Table.DefaultView; listBox1.ItemsSource = data.Table.DefaultView; listBox1.IsSynchronizedWithCurrentItem = true; } […code…] } В разметке выполнена привязка элементов текущей строки таблицы к элементам управления CheckBox и TextBox. Имя соответствующего столбца указывается в свойстве Path привязки. Для элементов TextBlock выполнена привязка к свойствам Date, Brush и DoubleValue типа DataItem_3, значения которого находятся в столбце с именем DataItem_3_Column.
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.