1 / 7

Классы из пространства имен System.Data

Классы из пространства имен System.Data. В пространство имен System.Data входят классы , поддерживающие клиентскую часть архитектуры ADO.NET . Класс DataSet состоит из набора таблиц DataTable , которые могут содержать данные, полученные из разных источников.

Download Presentation

Классы из пространства имен System.Data

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Классы из пространства имен System.Data • В пространство имен 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( stringtableName ); • После создания объекта DataTable с использованием открытых конструкторов класса он не имеет схемы . • Чтобы определить схему таблицы DataTable, необходимо создать объекты DataColumn и добавить их к коллекции Columns таблицы.

  3. КлассDataColumn • При создании столбцов DataColumnиспользуется конструктор класса или одна из перегруженных версий метода Add класса DataColumnCollection. • Некоторые конструкторы класса DataColumn DataColumn(); DataColumn( stringcolumnName ); DataColumn( stringcolumnName, TypedataType ); • В приведенном фрагменте кода создается таблица с именем “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 • В таблице DataTableданные хранятся в виде строк – объектов типа DataRow. Класс DataRow не имеет открытых конструкторов. • Ссылку на новую строку в таблице можно получить как возвращаемое значение метода NewRow класса DataTable. DataRow NewRow(); • Строка DataRow добавляется к коллекции строк таблицы Rowsпри вызове метода Add класса DataRowCollection. voidAdd( DataRowrow ); virtualDataRowAdd( object[] values ); • Доступ к отдельным полям (столбцам) строки таблицы дают индексаторы, которые принимают как параметр номер или имя столбца. objectthis[ stringcolumnName ] {get; set;} objectthis[ DataColumncolumn ] {get; set;} objectthis[ intcolumnIndex ] {get; set;}

  5. Редактирование данных таблицы • Класс DataTable поддерживает средства для восстановления (rollback) исходных значений, которые хранились в таблице до ее изменения (в том числе программного). • Для каждой строки таблицы поддерживается четыре версии: • Current– измененные значения; • Original – значения до изменения; • Proposed– существует только в процессе редактирования ; • Default– одна из предыдущих версий (зависит от состояния строки). • Только после вызова одного из следующих методов класса DataTable, изменения в таблице либо принимаются, либо восстанавливаются исходные значения. publicvoidAcceptChanges(); publicvirtualvoidRejectChanges(); • Можно получить значения полей для разных версий строки с помощью определенных в классе DataRow индексаторов, указав соответствующее значение перечисления DataRowVersion . Среди значений перечисления есть Current и Original. objectthis[ DataColumncolumn, DataRowVersionversion ] {get;} objectthis[ stringcolumnName, DataRowVersionversion ] {get;} objectthis[ intcolumnIndex, DataRowVersionversion ] {get;}

  6. Класс DataView • Класс DataViewдает возможность создать несколько представлений (view) для одного и того же множества данных из объекта DataTable, используя различные критерии сортировки и/или фильтрации. • Класс DataViewвсегда связан с объектом DataTable. • С каждым объектом DataTable всегда связан объект DataView - представление по умолчанию. Ссылку на него можно получить через свойство класса DataTable: publicDataViewDefaultView {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. <TextBox Text="{Binding Path=DateTime_Column}“ Grid.Column="1" Margin="10,140,10,0 " /> <CheckBoxIsChecked="{Binding Path=Bool_Column}" Content="{Binding Path=Bool_Column}" Grid.Column="1" Margin="10,175,10,0" Height="25" VerticalAlignment="Top"/> <TextBox Text="{Binding Path=DataItem_3_Column}" Grid.Column="1"Margin="10,210,10,0"/> <TextBlock Text="{Binding Path=DataItem_3_Column.Date}" Foreground="{Binding Path=DataItem_3_Column.Brush}" Margin="50,305,10,0" /> <TextBlock Text="{Binding Path=DataItem_3_Column.DoubleValue}" Grid.Column="1" />

More Related