Элемент управления источником данных взаимодействует с элементами управления, связанными с данными, и скрывает сложные процессы привязки данных. Это инструменты, которые предоставляют данные элементам управления, привязанным к данным, и поддерживают выполнение таких операций, как вставки, удаления, сортировки и обновления.
Каждый элемент управления источником данных объединяет реляционные базы данных конкретного поставщика данных, документы XML или пользовательские классы и помогает в:
- Управление соединением
- Выбор данных
- Управление аспектами презентации, такими как подкачка страниц, кэширование и т. Д.
- Манипулирование данными
В ASP.NET имеется множество элементов управления источниками данных для доступа к данным из SQL Server, с серверов ODBC или OLE DB, из файлов XML и из бизнес-объектов.
В зависимости от типа данных эти элементы управления можно разделить на две категории:
- Элементы управления иерархическими источниками данных
- Элементы управления источниками данных на основе таблиц
Элементы управления источником данных, используемые для иерархических данных:
-
XMLDataSource — позволяет связывать файлы и строки XML с информацией о схеме или без нее.
-
SiteMapDataSource — позволяет связываться с поставщиком, который предоставляет информацию о карте сайта.
XMLDataSource — позволяет связывать файлы и строки XML с информацией о схеме или без нее.
SiteMapDataSource — позволяет связываться с поставщиком, который предоставляет информацию о карте сайта.
Элементы управления источником данных, используемые для табличных данных:
Элементы управления источником данных | Описание |
---|---|
SqlDataSource | Он представляет собой соединение с поставщиком данных ADO.NET, который возвращает данные SQL, включая источники данных, доступные через OLEDB и ODBC. |
ObjectDataSource | Это позволяет привязку к пользовательскому бизнес-объекту .Net, который возвращает данные. |
LinqDataSource | Он позволяет связывать результаты запроса Linq-to-SQL (поддерживается только ASP.NET 3.5). |
AccessDataSource | Он представляет собой соединение с базой данных Microsoft Access. |
Представления источника данных
Представления источника данных являются объектами класса DataSourceView. Которые представляют собой настраиваемое представление данных для различных операций с данными, таких как сортировка, фильтрация и т. Д.
Класс DataSourceView служит базовым классом для всех классов представления источника данных, которые определяют возможности элементов управления источником данных.
В следующей таблице представлены свойства класса DataSourceView:
свойства | Описание |
---|---|
CanDelete | Указывает, разрешено ли удаление в базовом источнике данных. |
CanInsert | Указывает, разрешена ли вставка в базовый источник данных. |
CanPage | Указывает, разрешено ли разбиение на страницы в базовом источнике данных. |
CanRetrieveTotalRowCount | Указывает, доступна ли информация об общем количестве строк. |
CanSort | Указывает, могут ли данные быть отсортированы. |
CanUpdate | Указывает, разрешены ли обновления для основного источника данных. |
События | Получает список делегатов обработчика событий для представления источника данных. |
название | Наименование вида. |
В следующей таблице представлены методы класса DataSourceView:
методы | Описание |
---|---|
CanExecute | Определяет, может ли указанная команда быть выполнена. |
ExecuteCommand | Выполняет конкретную команду. |
ExecuteDelete | Выполняет операцию удаления в списке данных, который представляет объект DataSourceView. |
ExecuteInsert | Выполняет операцию вставки в список данных, который представляет объект DataSourceView. |
ExecuteSelect | Получает список данных из базового хранилища данных. |
ExecuteUpdate | Выполняет операцию обновления списка данных, который представляет объект DataSourceView. |
удалять | Выполняет операцию удаления данных, связанных с представлением. |
Вставить | Выполняет операцию вставки данных, связанных с представлением. |
Выбрать | Возвращает запрошенные данные. |
Обновить | Выполняет операцию обновления данных, связанных с представлением. |
OnDataSourceViewChanged | Вызывает событие DataSourceViewChanged. |
RaiseUnsupportedCapabilitiesError | Вызывается методом RaiseUnsupportedCapabilitiesError, чтобы сравнить возможности, запрошенные для операции ExecuteSelect, с теми, которые поддерживает представление. |
Элемент управления SqlDataSource
Элемент управления SqlDataSource представляет соединение с реляционной базой данных, такой как база данных SQL Server или Oracle, или данные, доступные через OLEDB или Open Database Connectivity (ODBC). Подключение к данным осуществляется через два важных свойства ConnectionString и ProviderName.
Следующий фрагмент кода предоставляет базовый синтаксис элемента управления:
<asp:SqlDataSource runat="server" ID="MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString='<%$ ConnectionStrings:LocalNWind %>' SelectionCommand= "SELECT * FROM EMPLOYEES" /> <asp:GridView ID="GridView1" runat="server" DataSourceID="MySqlSource" />
Настройка различных операций с данными на базовых данных зависит от различных свойств (групп свойств) элемента управления источником данных.
В следующей таблице представлены связанные наборы свойств элемента управления SqlDataSource, который предоставляет программный интерфейс элемента управления:
Группа недвижимости | Описание |
---|---|
DeleteCommand, DeleteParameters, DeleteCommandType |
Получает или задает оператор SQL, параметры и тип для удаления строк в базовых данных. |
FilterExpression, FilterParameters |
Получает или задает строку и параметры фильтрации данных. |
InsertCommand, InsertParameters, InsertCommandType |
Получает или задает оператор SQL, параметры и тип для вставки строк в базовую базу данных. |
SelectCommand, SelectParameters, SelectCommandType |
Получает или задает оператор SQL, параметры и тип для извлечения строк из базовой базы данных. |
SortParameterName | Получает или задает имя входного параметра, который будет использоваться хранимой процедурой команды для сортировки данных. |
UpdateCommand, UpdateParameters, UpdateCommandType |
Получает или задает оператор SQL, параметры и тип для обновления строк в базовом хранилище данных. |
DeleteCommand,
DeleteParameters,
DeleteCommandType
FilterExpression,
FilterParameters
InsertCommand,
InsertParameters,
InsertCommandType
SelectCommand,
SelectParameters,
SelectCommandType
UpdateCommand,
UpdateParameters,
UpdateCommandType
В следующем фрагменте кода показан элемент управления источником данных, включенный для манипулирования данными:
<asp:SqlDataSource runat="server" ID= "MySqlSource" ProviderName='<%$ ConnectionStrings:LocalNWind.ProviderName %>' ConnectionString=' <%$ ConnectionStrings:LocalNWind %>' SelectCommand= "SELECT * FROM EMPLOYEES" UpdateCommand= "UPDATE EMPLOYEES SET LASTNAME=@lame" DeleteCommand= "DELETE FROM EMPLOYEES WHERE EMPLOYEEID=@eid" FilterExpression= "EMPLOYEEID > 10"> ..... ..... </asp:SqlDataSource>
Элемент управления ObjectDataSource
Элемент управления ObjectDataSource позволяет пользовательским классам связывать выходные данные своих методов с элементами управления с привязкой к данным. Программный интерфейс этого класса почти такой же, как элемент управления SqlDataSource.
Ниже приведены два важных аспекта связывания бизнес-объектов:
-
У связываемого класса должен быть конструктор по умолчанию, он не должен иметь состояния и иметь методы, которые можно сопоставить для выбора, обновления, вставки и удаления семантики.
-
Объект должен обновлять по одному элементу за раз, пакетные операции не поддерживаются.
У связываемого класса должен быть конструктор по умолчанию, он не должен иметь состояния и иметь методы, которые можно сопоставить для выбора, обновления, вставки и удаления семантики.
Объект должен обновлять по одному элементу за раз, пакетные операции не поддерживаются.
Давайте перейдем непосредственно к примеру для работы с этим элементом управления. Студенческий класс — это класс, который будет использоваться с источником данных объекта. Этот класс имеет три свойства: идентификатор студента, имя и город. Он имеет конструктор по умолчанию и метод GetStudents для извлечения данных.
Студенческий класс:
public class Student { public int StudentID { get; set; } public string Name { get; set; } public string City { get; set; } public Student() { } public DataSet GetStudents() { DataSet ds = new DataSet(); DataTable dt = new DataTable("Students"); dt.Columns.Add("StudentID", typeof(System.Int32)); dt.Columns.Add("StudentName", typeof(System.String)); dt.Columns.Add("StudentCity", typeof(System.String)); dt.Rows.Add(new object[] { 1, "M. H. Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; } }
Выполните следующие шаги, чтобы связать объект с источником данных объекта и получить данные:
-
Создать новый веб-сайт.
-
Добавьте к нему класс (Students.cs), щелкнув правой кнопкой мыши проект в обозревателе решений, добавив шаблон класса и поместив в него вышеуказанный код.
-
Создайте решение, чтобы приложение могло использовать ссылку на класс.
-
Поместите элемент управления источником данных объекта в веб-форму.
-
Настройте источник данных, выбрав объект.
Создать новый веб-сайт.
Добавьте к нему класс (Students.cs), щелкнув правой кнопкой мыши проект в обозревателе решений, добавив шаблон класса и поместив в него вышеуказанный код.
Создайте решение, чтобы приложение могло использовать ссылку на класс.
Поместите элемент управления источником данных объекта в веб-форму.
Настройте источник данных, выбрав объект.
-
Выберите метод (ы) данных для различных операций над данными. В этом примере есть только один метод.
Выберите метод (ы) данных для различных операций над данными. В этом примере есть только один метод.
-
Поместите связанный элемент управления данными, такой как представление сетки, на страницу и выберите источник данных объекта в качестве основного источника данных.
Поместите связанный элемент управления данными, такой как представление сетки, на страницу и выберите источник данных объекта в качестве основного источника данных.
-
На этом этапе представление дизайна должно выглядеть следующим образом:
На этом этапе представление дизайна должно выглядеть следующим образом:
-
Запустите проект, он получит жестко закодированные кортежи из класса учеников.
Запустите проект, он получит жестко закодированные кортежи из класса учеников.
AccessDataSource Control
Элемент управления AccessDataSource представляет соединение с базой данных Access. Он основан на элементе управления SqlDataSource и предоставляет более простой интерфейс программирования. Следующий фрагмент кода предоставляет основной синтаксис для источника данных:
<asp:AccessDataSource ID="AccessDataSource1 runat="server" DataFile="~/App_Data/ASPDotNetStepByStep.mdb" SelectCommand="SELECT * FROM [DotNetReferences]"> </asp:AccessDataSource>
Элемент управления AccessDataSource открывает базу данных в режиме только для чтения. Однако его также можно использовать для выполнения операций вставки, обновления или удаления. Это делается с помощью команд ADO.NET и набора параметров.
Обновления проблематичны для баз данных Access из приложения ASP.NET, поскольку база данных Access представляет собой простой файл, а учетная запись приложения ASP.NET по умолчанию может не иметь разрешения на запись в файл базы данных.