Шаг 111 - DataSet создание таблиц без БД

В одном из шагов Артём упоминал про использование DataSet. Этот класс используется для хранения в памяти(кэше) данных полученных из базы данных Он содержит коллекцию таблиц, реляционных зависимостей(не помню точно как это на русском, но кажется так) и constraints(забыл как это будет по русски). Остановимся пока что на таблицах(о последних двух поговорим чуть позже).

Мы можем использовать DataSet для хранения данных даже не считывая их из базы (нам это понадобится позже). Для создания таблиц нам понадобится объект DataTable(NameSpace System.Data, Assembly System.Data.dll). Не забудьте добавить при компиляции к проекту /r: System.Data.dll. Итак создаём объект DataTable. У него есть два конструктора:

public DataTable();
public DataTable(string);

Нас интересует второй, он создаёт таблицу с заданным именем, в отличии от первого создадим таблицу покупателей.

DataTable FirstTable = new DataTable("Customers");

И так мы создали таблицу с именем "Customers", чтобы долго не возиться создам в ней два поля id покупателя и его имя.

Для добавления столбцов нам нужен объект DataColumn. Создадим его.

DataColumn column;
column = new DataColumn();

Теперь нам нужно его инициализировать.

//тип столбца, нужно указывать тип .Net
column.DataType = Type.GetType("System.Int32");
// имя столбца
column.ColumnName = "customer_id";
//поле автоинкрементное,  причём если AutoIncrement установим 
//в true и тип поля не int, то получим ексепсион
column.AutoIncrement = true;
// заголовок столбца, причём если не утановлен, то
//возвращает значение ColumnName
column.Caption = "Id покупателя";
//можно изменять
column.ReadOnly = false;
// уникальный
column.Unique = true;				
//добавляем в таблицу
FirstTable.Columns.Add(column);
//дальше аналогично и для Name
column = new DataColumn();
column.DataType = Type.GetType("System.String");
column.ColumnName = "name";
column.AutoIncrement = false;
сolumn.Caption = "Имя";
сolumn.ReadOnly = true;
column.Unique = false;
FirstTable.Columns.Add(column);

Хотя это и можно было сделать и в конструкторе типа

column = new DataColumn("customer_id", Type.GetType("System.Int32"));

Но потом всё равно нужно будет указывать параметры.

Столбцы добавили в таблицу, теперь осталось добавить таблицу в DataSet сначала создадим его.

DataSet LeonDataSet = new DataSet();

И добавим

LeonDataSet.Tables.Add(FirstTable);

В DataSet есть коллекция Tables типа TablesCollection, в этой коллекции находятся таблицы которые находятся в DataSet, вот и мы и воспользовались методом Add этой коллекции для добавления нашей таблицы.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Leonid Molochniy - 17.10.2001