Учебники

ADO.NET

ADO.NET обеспечивает мост между внешними элементами управления и внутренней базой данных. Объекты ADO.NET инкапсулируют все операции доступа к данным, и элементы управления взаимодействуют с этими объектами для отображения данных, таким образом скрывая детали перемещения данных.

На следующем рисунке показаны объекты ADO.NET:

ADO.Net объекты

Класс DataSet

Набор данных представляет собой подмножество базы данных. Он не имеет постоянного подключения к базе данных. Для обновления базы данных требуется переподключение. DataSet содержит объекты DataTable и объекты DataRelation. Объекты DataRelation представляют отношения между двумя таблицами.

В следующей таблице приведены некоторые важные свойства класса DataSet:

свойства Описание
С учетом регистра Указывает, являются ли сравнения строк в таблицах данных чувствительными к регистру.
Контейнер Получает контейнер для компонента.
DataSetName Получает или задает имя текущего набора данных.
DefaultViewManager Возвращает представление данных в наборе данных.
DesignMode Указывает, находится ли компонент в данный момент в режиме разработки.
EnforceConstraints Указывает, соблюдаются ли правила ограничения при попытке какой-либо операции обновления.
События Получает список обработчиков событий, которые подключены к этому компоненту.
ExtendedProperties Получает коллекцию настроенной пользовательской информации, связанной с DataSet.
HasErrors Указывает, есть ли какие-либо ошибки.
IsInitialized Указывает, инициализирован ли набор данных.
место действия Получает или задает информацию о локали, используемую для сравнения строк в таблице.
Пространство имен Получает или задает пространство имен DataSet.
Префикс Получает или задает префикс XML, который псевдоним пространства имен DataSet.
связи Возвращает коллекцию объектов DataRelation.
таблицы Возвращает коллекцию объектов DataTable.

В следующей таблице показаны некоторые важные методы класса DataSet:

методы Описание
AcceptChanges Принимает все изменения, сделанные с момента загрузки DataSet или вызова этого метода.
BeginInit Начинает инициализацию набора данных. Инициализация происходит во время выполнения.
Очистить Очищает данные
клон Копирует структуру DataSet, включая все схемы DataTable, отношения и ограничения. Не копирует никаких данных.
копия Копирует как структуру, так и данные.
CreateDataReader () Возвращает DataTableReader с одним набором результатов на DataTable в той же последовательности, в которой таблицы отображаются в коллекции таблиц.
CreateDataReader (DataTable []) Возвращает DataTableReader с одним набором результатов на DataTable.
EndInit Завершает инициализацию набора данных.
Равно (Объект) Определяет, равен ли указанный объект текущему объекту.
завершать Освободите ресурсы и проведите другие очистки.
GetChanges Возвращает копию DataSet со всеми изменениями, внесенными с момента его загрузки или вызова метода AcceptChanges.
GetChanges (DataRowState) Получает копию DataSet со всеми изменениями, внесенными с момента его загрузки или вызова метода AcceptChanges, отфильтрованного с помощью DataRowState.
GetDataSetSchema Получает копию XmlSchemaSet для DataSet.
GetObjectData Заполняет информационный объект сериализации данными, необходимыми для сериализации DataSet.
GetType Получает тип текущего экземпляра.
GetXML Возвращает XML-представление данных.
GetXMLSchema Возвращает схему XSD для представления данных в формате XML.
HasChanges () Получает значение, указывающее, есть ли изменения в наборе данных, включая новые, удаленные или измененные строки.
HasChanges (DataRowState) Получает значение, указывающее, есть ли в DataSet изменения, включая новые, удаленные или измененные строки, отфильтрованные с помощью DataRowState.
IsBinarySerialized Проверяет формат сериализованного представления DataSet.
Загрузить (IDataReader, LoadOption, DataTable []) Заполняет DataSet значениями из источника данных, используя предоставленный IDataReader, используя массив экземпляров DataTable для предоставления схемы и информации о пространстве имен.
Загрузить (IDataReader, LoadOption, String []) Заполняет DataSet значениями из источника данных, используя предоставленный IDataReader, используя массив строк для предоставления имен для таблиц в DataSet.
Слияние () Объединяет данные с данными из другого набора данных. Этот метод имеет разные перегруженные формы.
ReadXml () Считывает XML-схему и данные в DataSet. Этот метод имеет разные перегруженные формы.
ReadXmlSchema (0) Считывает XML-схему в DataSet. Этот метод имеет разные перегруженные формы.
RejectChanges Откат всех изменений, сделанных с момента последнего вызова AcceptChanges.
WriteXml () Записывает схему XML и данные из DataSet. Этот метод имеет разные перегруженные формы.
WriteXMLSchema () Записывает структуру DataSet в виде XML-схемы. Этот метод имеет разные перегруженные формы.

Класс DataTable

Класс DataTable представляет таблицы в базе данных. Он имеет следующие важные свойства; большинство из этих свойств доступны только для чтения, кроме свойства PrimaryKey:

свойства Описание
ChildRelations Возвращает коллекцию дочерних отношений.
Колонны Возвращает коллекцию Columns.
Ограничения Возвращает коллекцию ограничений.
DataSet Возвращает родительский DataSet.
Вид по умолчанию Возвращает вид таблицы.
ParentRelations Возвращает коллекцию ParentRelations.
Основной ключ Получает или задает массив столбцов в качестве первичного ключа для таблицы.
Ряды Возвращает коллекцию Rows.

В следующей таблице показаны некоторые важные методы класса DataTable:

методы Описание
AcceptChanges Подтверждает все изменения с момента последнего AcceptChanges.
Очистить Удаляет все данные из таблицы.
GetChanges Возвращает копию DataTable со всеми изменениями, внесенными с момента вызова метода AcceptChanges.
GetErrors Возвращает массив строк с ошибками.
ImportRows Копирует новую строку в таблицу.
LoadDataRow Находит и обновляет определенную строку или создает новую, если она не найдена.
сливаться Объединяет таблицу с другим объектом DataTable.
NewRow Создает новый DataRow.
RejectChanges Откат всех изменений, сделанных с момента последнего вызова AcceptChanges.
Сброс Сбрасывает таблицу в исходное состояние.
Выбрать Возвращает массив объектов DataRow.

Класс DataRow

Объект DataRow представляет строку в таблице. Он имеет следующие важные свойства:

свойства Описание
HasErrors Указывает, есть ли какие-либо ошибки.
Предметы Получает или задает данные, хранящиеся в определенном столбце.
ItemArrays Получает или задает все значения для строки.
Таблица Возвращает родительскую таблицу.

В следующей таблице показаны некоторые важные методы класса DataRow:

методы Описание
AcceptChanges Принимает все изменения, сделанные после вызова этого метода.
BeginEdit Начинается операция редактирования.
CancelEdit Отменяет операцию редактирования.
удалять Удаляет DataRow.
EndEdit Завершает операцию редактирования.
GetChildRows Получает дочерние строки этой строки.
GetParentRow Получает родительскую строку.
GetParentRows Получает родительские строки объекта DataRow.
RejectChanges Откат всех изменений, сделанных с момента последнего вызова AcceptChanges.

Объект DataAdapter

Объект DataAdapter действует как посредник между объектом DataSet и базой данных. Это помогает в наборе данных содержать данные из нескольких баз данных или другого источника данных.

Объект DataReader

Объект DataReader является альтернативой комбинации DataSet и DataAdapter. Этот объект обеспечивает ориентированный на соединение доступ к записям данных в базе данных. Эти объекты подходят для доступа только для чтения, например, для заполнения списка и разрыва соединения.

Объекты DbCommand и DbConnection

Объект DbConnection представляет соединение с источником данных. Соединение может быть общим для разных объектов команд.

Объект DbCommand представляет команду или хранимую процедуру, отправляемую в базу данных при получении или манипулировании данными.

пример

До сих пор мы использовали таблицы и базы данных, уже существующие на нашем компьютере. В этом примере мы создадим таблицу, добавим в нее столбец, строки и данные и отобразим таблицу с помощью объекта GridView.

Исходный код файла имеет следующий вид:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="createdatabase._Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >

   <head runat="server">
      <title>
         Untitled Page
      </title>
   </head>
   
   <body>
      <form id="form1" runat="server">
      
         <div>
            <asp:GridView ID="GridView1" runat="server">
            </asp:GridView>
         </div>
         
      </form>
   </body>
   
</html>

Код файла:

namespace createdatabase
{
   public partial class _Default : System.Web.UI.Page
   {
      protected void Page_Load(object sender, EventArgs e)
      {
         if (!IsPostBack)
         {
            DataSet ds = CreateDataSet();
            GridView1.DataSource = ds.Tables["Student"];
            GridView1.DataBind();
         }
      }
      
      private DataSet CreateDataSet()
      {
         //creating a DataSet object for tables
         DataSet dataset = new DataSet();

         // creating the student table
         DataTable Students = CreateStudentTable();
         dataset.Tables.Add(Students);
         return dataset;
      }
      
      private DataTable CreateStudentTable()
      {
         DataTable Students = new DataTable("Student");

         // adding columns
         AddNewColumn(Students, "System.Int32", "StudentID");
         AddNewColumn(Students, "System.String", "StudentName");
         AddNewColumn(Students, "System.String", "StudentCity");

         // adding rows
         AddNewRow(Students, 1, "M H Kabir", "Kolkata");
         AddNewRow(Students, 1, "Shreya Sharma", "Delhi");
         AddNewRow(Students, 1, "Rini Mukherjee", "Hyderabad");
         AddNewRow(Students, 1, "Sunil Dubey", "Bikaner");
         AddNewRow(Students, 1, "Rajat Mishra", "Patna");

         return Students;
      }

      private void AddNewColumn(DataTable table, string columnType, string  columnName)
      {
         DataColumn column = table.Columns.Add(columnName,  Type.GetType(columnType));
      }

      //adding data into the table
      private void AddNewRow(DataTable table, int id, string name, string city)
      {
         DataRow newrow = table.NewRow();
         newrow["StudentID"] = id;
         newrow["StudentName"] = name;
         newrow["StudentCity"] = city;
         table.Rows.Add(newrow);
      }
   }
}

При выполнении программы соблюдайте следующее:

  • Сначала приложение создает набор данных и связывает его с элементом управления представлением сетки, используя метод DataBind () элемента управления GridView.

  • Метод Createdataset () — это пользовательская функция, которая создает новый объект DataSet, а затем вызывает другой определенный пользователем метод CreateStudentTable (), чтобы создать таблицу и добавить ее в коллекцию Tables набора данных.

  • Метод CreateStudentTable () вызывает определенные пользователем методы AddNewColumn () и AddNewRow () для создания столбцов и строк таблицы, а также для добавления данных в строки.

Сначала приложение создает набор данных и связывает его с элементом управления представлением сетки, используя метод DataBind () элемента управления GridView.

Метод Createdataset () — это пользовательская функция, которая создает новый объект DataSet, а затем вызывает другой определенный пользователем метод CreateStudentTable (), чтобы создать таблицу и добавить ее в коллекцию Tables набора данных.

Метод CreateStudentTable () вызывает определенные пользователем методы AddNewColumn () и AddNewRow () для создания столбцов и строк таблицы, а также для добавления данных в строки.

Когда страница выполняется, она возвращает строки таблицы, как показано: