Учебники

ASP.NET — источники данных

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

Каждый элемент управления источником данных объединяет реляционные базы данных конкретного поставщика данных, документы 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 по умолчанию может не иметь разрешения на запись в файл базы данных.