Элемент управления источником данных взаимодействует с элементами управления, привязанными к данным, и скрывает сложный процесс привязки данных. Это инструменты, которые предоставляют данные элементам управления, привязанным к данным, и поддерживают выполнение таких операций, как вставка, удаление и обновление.
Каждый элемент управления источником данных включает в себя специальный поставщик данных, связанный с базой данных, XML-файлом или пользовательским классом, и помогает:
Управление подключениями
Выберите данные
Управляйте такими аспектами представления, как разбиение на страницы, кэширование и т. д.
Манипулировать данными
В ASP.NET доступно множество элементов управления источниками данных для получения данных с сервера SQL, сервера ODBC или OLE DB, из файлов XML и из бизнес-объектов.
В зависимости от типа данных эти элементы управления можно разделить на две категории:
Многоуровневое управление источниками данных
Управление источниками данных на основе таблиц
Элементы управления источниками данных для иерархических данных:
XMLDataSource — позволяет связывать XML-файлы и строки с информацией о схеме или без нее.
SiteMapDataSource — позволяет привязать поставщика, предоставляющего информацию о карте сайта.
Элементы управления источниками данных, используемые для табличных данных:
Контроль источника данных | описывать |
---|---|
SqlDataSource | Он представляет собой соединение с поставщиком данных ADO.NET, который возвращает данные SQL, включая источники данных, доступные через OLEDB и QDBC. |
ИсточникДанныхОбъекта | Он позволяет привязывать пользовательский бизнес-объект .Net, который возвращает данные. |
LinqdataSource | Он позволяет связывать результаты запросов Linq-t0-SQL. (Поддерживается только ASP.NET 3.5) |
Источник данных доступа | Он представляет собой подключение к базе данных Microsoft Access. |
Представление источника данных — это объект класса DataSourceView, который представляет собой настраиваемое представление данных, предназначенное для различных операций с данными, таких как сортировка, фильтрация и т. д.
Класс DataSourceView используется в качестве базового класса для всех классов представления источника данных и определяет производительность элемента управления источником данных.
В следующей таблице представлены свойства класса DataSourceView:
свойство | описывать |
---|---|
МожноУдалить | Указывает, разрешено ли удаление потенциальных источников данных. |
CanInsert | Указывает, разрешить ли вставку потенциальных источников данных. |
CanPage | Указывает, разрешена ли разбиение по страницам потенциальных источников данных. |
CanRetriveTotalRowCount | Указывает, можно ли получить полную информацию о строках. |
CanSort | Указывает, можно ли сортировать данные. |
Можно обновить | Указывает, разрешены ли обновления для потенциального источника данных. |
События | Получает список обработчиков событий, представленных представлением источника данных. |
Имя | Имя представления. |
В следующей таблице представлены методы класса DataSourceView:
метод | описывать |
---|---|
Можно выполнить | Определите, можно ли выполнить указанную команду. |
Выполнитькоманду | Выполните указанную команду. |
ВыполнитьУдалить | Выполняет операцию удаления списка данных, представленного объектом DataSourceView. |
ВыполнитьВставка | Выполняет операцию вставки в список данных, представленный объектом DataSourceView. |
ВыполнитьВыбрать | Получите список данных из базового хранилища данных. |
Выполнить обновление | Выполняет операцию обновления списка данных, представленных объектом DataSourceView. |
Удалить | Выполняет операцию удаления данных, связанных с представлением. |
Вставлять | Выполняет операцию вставки данных, связанных с представлением. |
Выбирать | Возвращает запрошенные данные. |
Обновлять | Выполняет операцию обновления данных, связанных с представлением. |
Ондатасаурцевиевчанжед | Вызовите событие DataSourceViewChanged. |
RaiseUnsupportedCapabilitiesError | Вызывается методом RaiseUnsupportedCapabilitiesError для сравнения возможностей, необходимых для операции ExecuteSelect, с возможностями, поддерживаемыми представлением. |
Элемент управления 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, который предоставляет программный интерфейс элемента управления:
группа атрибутов | описывать |
---|---|
УдалитьКомманд, УдалитьПараметры, УдалитьКоммандтипе | Получает или задает инструкцию SQL, параметры и тип удаляемых строк в базовых данных. |
Выражение Фильтра, Параметры Фильтра | Получает и задает строки и параметры фильтрации данных. |
InsertCommand,InsertParameters,InsertCommandType | Получает или задает инструкцию SQL, параметры и тип строк, вставленных в базовые данные. |
SelectCommand, SelectParameters, SelectCommandType | Получает или задает инструкцию SQL, параметры и тип строк, полученных из базовых данных. |
Имя параметра сортировки | Получает или задает имя входного параметра, который будет использоваться хранимой процедурой команды для сортировки данных. |
UpdateCommand,UpdateParameters,UpdateCommandType | Получает или задает инструкцию SQL, параметры и тип строк, обновляемых в базовых данных. |
В следующем фрагменте кода показан элемент управления источником данных, который можно использовать для выполнения операций с данными:
<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 позволяет определяемым пользователем классам подключать выходные данные своих методов к элементам управления с привязкой к данным. Программный интерфейс этого класса почти такой же, как у элемента управления 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, "MH Kabir", "Calcutta" }); dt.Rows.Add(new object[] { 2, "Ayan J. Sarkar", "Calcutta" }); ds.Tables.Add(dt); return ds; }}
Выполните следующие шаги, чтобы привязать провод к объекту источника данных и получить данные:
Создайте новую веб-страницу.
Добавьте класс (Student.cs) в проект Solution Explorer, щелкнув его правой кнопкой мыши, добавив шаблон класса и поместив внутрь приведенный выше код.
Установите методы, чтобы приложение могло использовать ссылку на класс.
Поместите объект управления источником данных в веб-форму.
Настройте источник данных, выбрав объект.
Выбирайте методы данных для различных операций с данными. В этом примере существует только один метод.
Разместите на странице элемент управления с привязкой к данным, например представление сетки, и выберите объект источника данных в качестве потенциального источника данных.
На этом этапе представление проекта должно выглядеть следующим образом:
Запуская проект, он извлекает жестко закодированного предка в классе студентов.
Элемент управления 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 по умолчанию может иметь разрешения на запись в файлы базы данных.