Поделиться через


Практическое руководство. Вызов хранимой процедуры с помощью LINQ (Visual Basic)

Интегрированный язык запросов (LINQ) позволяет легко получать доступ к сведениям базы данных, в том числе к объектам, например, хранимым процедурам.

Ниже приведен пример способа создания приложения, вызывающего хранимую процедуру в базе данных SQL Server. В примере показано, как вызвать две различные хранимые процедуры в базе данных. Каждая процедура возвращает результаты запроса. Одна процедура принимает входные параметры, а другая процедура — не принимает.

В примерах этого раздела используется учебная база данных "Борей". При отсутствии учебной базы данных "Борей" на компьютере разработчика ее можно загрузить с веб-узла Центра загрузки Майкрософт. Указания см. в разделе Загрузка образцов баз данных (LINQ to SQL).

Примечание

На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio.

Создание подключения к базе данных

  1. В Visual Studio откройте обозреватель серверов или обозреватель баз данных. Для этого в меню Вид выберите пункт Обозреватель серверов или Обозреватель баз данных.

  2. В обозревателе серверов или обозревателе баз данных щелкните правой кнопкой мыши Подключения данных, а затем выберите команду Добавить подключение.

  3. Укажите допустимое подключение к учебной базе данных "Борей".

Добавление проекта, содержащего файл LINQ-SQL

  1. В меню Файл Visual Studio выберите команду Создать и щелкните Проект. Выберите Приложение Windows Forms в качестве типа проекта Visual Basic.

  2. В меню Проект выберите команду Добавить новый элемент. Выберите шаблон элемента Классы LINQ-SQL.

  3. Назовите файл northwind.dbml. Нажмите кнопку Добавить. Откроется реляционный конструктор объектов для файла northwind.dbml.

Чтобы добавить в конструктор O/R хранимые процедуры

  1. В представлении Обозреватель серверов или Обозреватель баз данных разверните подключение к базе данных "Борей". Разверните папку Хранимые процедуры.

    Если реляционный конструктор объектов закрыт, откройте его снова, дважды щелкнув файл northwind.dbml, который был добавлен ранее.

  2. Нажмите кнопку Sales by Year хранимой процедуры и перетащите ее в правую область конструктора. Нажмите кнопку Ten Most Expensive Products хранимой процедуры и перетащите ее в правую область конструктора.

  3. Сохраните изменения и закройте конструктор.

  4. Сохраните проект.

Чтобы добавить код для отображения результатов хранимых процедур

  1. С панели элементов перетащите элемент управления DataGridView в заданную по умолчанию форму Windows Form для проекта (Form1).

  2. Дважды щелкните значок Form1 для добавления кода для ее события Load.

  3. После добавления таблицы в O/R Конструктор, разработчик добавил объект DataContext в проект. Этот объект содержит код, необходимый для доступа к этим процедурам. Объекту DataContext присваивается имя на основе имени файла .dbml. Для данного проекта объект DataContext называется northwindDataContext.

    Можно создать экземпляр DataContext в коде и вызывать методы хранимой процедуры, определяемые в конструкторе O/R. Для привязки объекта DataGridView может потребоваться немедленное выполнение запроса путем вызова метода ToList<TSource> для результатов выполнения хранимой процедуры.

    Добавьте следующий код в событие Load для вызова одной из процедур, предоставленных как методы в контексте данных.

    Dim db As New northwindDataContext
    
    ' Display the results of the Sales_by_Year stored procedure.
    DataGridView1.DataSource = 
        db.Sales_by_Year(#1/1/1996#, #1/1/2007#).ToList()
    
    
    ...
    
    
    ' Display the results of the Ten_Most_Expensive_Products
    ' stored procedure.
    
    DataGridView1.DataSource = 
        db.Ten_Most_Expensive_Products.ToList()
    
  4. Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.

См. также

Задачи

Как назначить хранимые процедуры для выполнения обновлений, вставок и удалений (реляционный конструктор объектов)

Пошаговое руководство. Создание классов LINQ to SQL (реляционный конструктор объектов)

Основные понятия

Методы DataContext (реляционный конструктор объектов)

Другие ресурсы

LINQ в Visual Basic

Запросы (Visual Basic)

LINQ to SQL