Типы DataColumn и DataRow

Столбцы и строки таблиц представляются классами DataColumn и DataRow соответственно:

Основные члены типа DataColumn:

AllowDBNull Может ли данный столбец содержать NULL. По умолчанию true
AutoIncrement AutoIncrementSeed AutoIncrementStep Настройка автоинкремента для данного столбца.
Caption Заголовок, который должен отображаться для данного столбца.
ColumnMapping Представление DataColumn при сохранении DataSet в виде XML. Столбец может быть записан как XML-элемент, XML-атрибут, текст, либо пропущен
ColumnName Имя столбца из коллекции Columns (внутреннее представление в DataTable). Если не указать значение явно, то по умолчанию там находится слово "Column" с числовым суффиксом по (т.е. Column1, Column2, Column3,...)
DataType Тип данных столбца (логический, строковый, с плавающей точкой и т.д.)
DefaultValue Значение по умолчанию, заносимое в данный столбец при вставке новых строк
Ordinal Положение столбца в коллекции Columns, содержащейся в DataTable
Readonly Предназначен ли данный столбец только для чтения после добавления строки в таблицу. По умолчанию равно false
Table Получает объект DataTable, содержащий данный DataColumn
Unique Указывает, должны ли быть уникальными значения во всех строках данного столбца. Для первичного ключа Unique должно содержать значение true

Основные члены типа DataRow:

HasErrors Есть ли ошибки в строке
GetColumnsInError() Ошибочные столбцы
GetColumnError() Описание ошибки для столбца
ClearErrors() Удалить информацию об ошибках
RowError Текстовое описание ошибки для строки
ItemArray Все значения столбцов строки в виде массива объектов
RowState Текущее состояние DataRow в содержащем его DataTable (новый, измененный, не измененный или удаленный)
Table Ссылка на объект DataTable, содержащий данный объект DataRow
AcceptChanges() Фиксация всех изменений в данной строке
RejectChanges() Отмена всех изменений в данной строке
BeginEdit() Начинает операцию редактирования
EndEdit() Заканчивает операцию редактирования
CancelEdit() Отменяет операцию редактирования
Delete() Помечает строку для удаления при вызове AcceptChanges()
IsNull() Проверяет, содержит ли указанный столбец пустое значение

Пример создания таблицы:

// создание столбцов:

DataColumn col1 = new DataColumn("IntField", typeof (int));

DataColumn col2 = new DataColumn("StrField", typeof (string));

// создание таблицы и добавление в нее столбцов:

DataTable table = new DataTable("TestTable");

table.Columns.Add(col1);

table.Columns.Add(col2);

// добавление строк в таблицу

DataRow row = table.NewRow();

row["IntField"] = 10;

row["StrField"] = "Hello!";

table.Rows.Add(row);

row = table.NewRow();

row["IntField"] = 20;

row["StrField"] = "Hello again!";

table.Rows.Add(row);

// создание DataSet и добавление в него таблицы

DataSet ds = new DataSet("TestDataBase");

ds.Tables.Add(table);

Работа с адаптерами данных:

Класс адаптеров данных применяется для заполнения наборов данных DataSet с помощью объектов DataTable; кроме того, они могут отправлять измененные DataTable назад в базу данных для обработки. В таблице перечислены основные члены базового класса DbDataAdapter, от которого порождаются все объекты адаптеров данных (например, SqlDataAdapter и OdbcDataAdapter).

Основные члены класса DbDataAdapter:

Fill() Выполняет команду SQL SELECT (указанную в свойстве SelectCommand) для запроса к базе данных и загрузки этих данных в объект DataTable
SelectCommand InsertCommand UpdateCommand DeleteCommand Содержат SQL-команды, отправляемые в хранилище данных при вызовах методов Fill() и Update()
Update() Выполняет команды SQL INSERT, UPDATE и DELETE (указанных свойствами InsertCommand, UpdateCommand и DeleteCommand) для сохранения в базе данных изменений, выполненных в DataTable

Пример:

string connectionString =

@"Data Source=(local)\SQLEXPRESS;Initial Catalog=DataBase1";

// Создание адаптера данных и установка команды для Fill()

SqlDataAdapter adapter =

new SqlDataAdapter("SELECT * FROM Table1", connectionString);

// Создание объекта DataSet

DataSet ds = new DataSet("DataBase1");

// Чтение из базы данных таблицы Table1 в объект DataSet

adapter.Fill(ds, "Table1");

// вывод всех столбцов таблицы Table1

DataTable dt = ds.Tables["Table1"];

for (int c = 0; c < dt.Columns.Count; c++)

Console.Write(dt.Columns[c].ColumnName + "\t");

Console.WriteLine();

// Вывод содержимого таблицы Table1.

for (int r = 0; r < dt.Rows.Count; r++)

{

for (int c = 0; c < dt.Columns.Count; c++)

Console.Write(dt.Rows[r][c].ToString() + "\t");

Console.WriteLine();

}



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: