Работа с автономными данными в ADO.NET - Использование объектов DataSet
ОГЛАВЛЕНИЕ
Использование объектов DataSet
Ниже приводится пример использования объекта DataSet. Все примеры в статье используют БД Northwind БД MS SQL Server.stringconn ="Provider=SQLSQL;Data Source=(local)\\NetSDK;
InitialCatalog=Northwind;Trusted_Connection=Yes;";
string query = "SELECT CustomerID, CompanyName, ContactName, Phone FROM Customers";
SqlDataAdapter da = new SqlDataAdapter(query, conn);
DataSet ds = new DataSet();
da.Fill(ds, "Customers");
DataTable table = ds.Tables[0];
DataRow row = table.Rows[0];
Console.WriteLine("OrderID: " + row["OrderID"]);
Console.WriteLine("CustomerID: " + row["CustomerID"]);
Изменение содержимого DataTable
Для добавления новой строки в таблицу существует метод NewRow(), который создает новый объект DataRow, но не добавляет запись в таблицу. Полем новой записи задаются значения по умолчанию или Null, если значение по умолчанию не задано.DataRow row = ds.Tables["Customers"].NewRow();
row["CustomerID"] = "VASYA";
row["Company"] = "Компания";
row["ContactName"] = "Вася Пупкин";
row["Phone"] = "11-22-33";
ds.Tables["Customers"].Rows.Add(row);
object[]aValues = {"VASYA", "Компания", "Вася Пупкин", "11-22-33"};
ds.Tables["Customers"].LoadDataRow(aValues, false);
DataRow row = ds.Tables["Customers"][0];
row["ContactName"] = "Вася Пупкин";
object[] items = {"VASYA", "Компания", "Вася Пупкин", "11-22-33"};
DataRow row = ds.Tables["Customers"][0];
Row.ItemArray = items;
Использование столбцов с автоинкрементном
Для поддержки столбцов с автоматическим увеличением значения у DataColumn есть свойства AutoIncrement, AutoIncrementSeed и AutoIncrementStep . Для того, чтобы создать столбец DataColumn с автоинкрементом нужно установить свойство AutoIncrement в true. Значение счетчика будет начинаться с AutoIncrementSeed (если это не нарушает корректность данных в таблице) и увеличиваться на значение AutoIncrementStep. Для столбцов с автоинкрементном рекомендуется устанавливать свойство ReadOnly в true. Ниже приведен пример вставки в таблицу столбца с автоинкрементомDataColumn column = table.Columns.Add("CustomerID", typeof(Int32));
column.AutoIncrement = true;
column.AutoIncrementSeed = 1;
column.AutoIncrementStep = 1;
Если вы планируете сносить изменения в БД методом DataAdapter.Update(), то рекомендуется задать свойствам AutoIncrementSeed и AutoIncrementStep значения -1. Это гарантирует, что ADO.NET будет генерировать значения метки, которых нет в БД. При вызове метода Update в БД внесутся уже уникальные значения.