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 () для создания столбцов и строк таблицы, а также для добавления данных в строки.
Когда страница выполняется, она возвращает строки таблицы, как показано: