|
|||
СВЯЗЬ НАБОРА ДАННЫХ И БАЗЫ ДАННЫХДАННЫХ
В пространстве имен System.Data определена система классов, которая реализует понятие набора данных. Набор данных (DataSet) представляет собой виртуальную базу данных, которая расположена в оперативной памяти и состоит из набора (коллекции) таблиц (объектов класса DataTable) и связей между ними (объектов класса DataRelation). Каждая таблица имеет набор столбцов (объектов типа DataColumn) и набор строк (объектов типа DataRow). Все таблицы в наборе данных хранятся в виде коллекции Tables. Столбцы в таблице хранятся тоже в виде коллекции под названием Columns, а строки – в виде коллекции под названием Rows. Обращение с таблицами набора данных напоминает работу с базой данных – у таблиц имеется функция Select(), которая задает параметры сортировки и выборки данных. Таким образом, можно моделировать различные запросы. Набор данных можно создавать программно посредством создания объектов-таблиц и столбцов. Сохранять информацию набора данных можно в формате XML с помощью функции WriteXml(). Также возможна и загрузка информации из XML-файла с помощью функции ReadXml().
2.5. СВЯЗЬ НАБОРА ДАННЫХ И БАЗЫ ДАННЫХ
Набор данных может быть связан с реальными базами данных, реализованными с помощью различных СУБД. Это реализуется с помощью объекта типа OdbcDataAdapter (или OleDbDataAdapter в зависимости от способа соединения с базой данных). Создание SQL-команды осуществляется с помощью адаптера. Кроме того, класс-адаптер имеет специальный метод, который позволяет записать результат выполнения запроса в таблицу набора данных. Приведем пример заполнения набора данных с помощью адаптера: // создание подключения к базе данных на основе строки соединения // с указанием источника данных ODBC OdbcConnection con = new OdbcConnection("DSN=proba"); // подключение к источнику данных con.Open(); // формирование адаптера для связи с базой данных OdbcDataAdapter adapt = new OdbcDataAdapter ("select * from Sessions", con); // создание набора данных для сохранения результата запроса DataSet ds = new DataSet(); // заполнение таблицы набора данных (второй параметр) // из базы данных через адаптер adapt.Fill(ds,”Sessions”); // перебор строк из полученной таблицы Sessions набора данных // имена столбцов в таблице набора данных будут теми же, // что и в исходной таблице базы данных foreach (DataRow dr in ds.Tables[“Sessions”]) Console.WriteLine(“”+dr[“NumGroup”]+” “+dr[“idSubject”]+ ” ”+dr[“Zach_exam”]); con.Close();
Отметим, что, так как набор данных является уже отсоединенным от базы данных, можно повторно просматривать элементы данных в любом порядке.
|
|||
|