Практическое руководство. Вызов хранимой процедуры с помощью LINQ (Visual Basic)
Обновлен: Ноябрь 2007
Интегрированный язык запросов (LINQ) позволяет легко получать доступ к сведениям базы данных, в том числе к объектам, например, хранимым процедурам.
Ниже приведен пример способа создания приложения, вызывающего хранимую процедуру в базе данных SQL Server. В примере показано, как вызвать две различные хранимые процедуры в базе данных. Каждая процедура возвращает результаты запроса. Одна процедура принимает входные параметры, а другая процедура — не принимает.
В примерах этого раздела используется учебная база данных "Борей". При отсутствии учебной базы данных "Борей" на компьютере разработчика ее можно загрузить с веб-узла Центра загрузки Майкрософт. Инструкции см. в разделе Загрузка образцов баз данных (LINQ to SQL).
Примечание. |
---|
На вашем компьютере названия некоторых элементов интерфейса пользователя Visual Studio или их расположение могут отличаться от указанных в нижеследующих инструкциях. Это зависит от имеющегося выпуска Visual Studio и используемых параметров. Дополнительные сведения см. в разделе Параметры Visual Studio. |
Создание подключения к базе данных
В Visual Studio откройте Обозреватель серверов или Обозреватель баз данных. Для этого в меню Вид выберите пункт Обозреватель серверов или Обозреватель баз данных.
В представлении Обозреватель серверов или Обозреватель баз данных щелкните правой кнопкой мыши Подключения данных, а затем выберите команду Добавить подключение.
Укажите допустимое подключение к учебной базе данных "Борей".
Добавление в файл SQL проекта, содержащего LINQ
В Visual Studio в меню Файл выберите командуСоздать и щелкните Проект. Выберите Приложение Windows Forms в качестве типа проекта Visual Basic.
В меню Проект выберите команду Добавить новый элемент. Выберите шаблон элемента Классы преобразования языка LINQ в язык SQL.
Назовите файл northwind.dbml. Нажмите кнопку Добавить. Откроется реляционный конструктор объектов для файла northwind.dbml.
Чтобы добавить в конструктор O/R хранимые процедуры
В представлении Обозреватель серверов или Обозреватель баз данных разверните подключение к базе данных "Борей". Разверните папку Хранимые процедуры.
Если реляционный конструктор объектов закрыт, откройте его снова, дважды щелкнув файл northwind.dbml, который был добавлен ранее.
Нажмите кнопку Sales by Year хранимой процедуры и перетащите ее в правую область конструктора. Нажмите кнопку Ten Most Expensive Products хранимой процедуры и перетащите ее в правую область конструктора.
Сохраните изменения и закройте конструктор.
Сохраните проект.
Чтобы добавить код для отображения результатов хранимых процедур
С Панели элементов перетащите элемент управления DataGridView в заданную по умолчанию форму Windows Form для проекта (Form1).
Дважды щелкните значок Form1 для добавления кода для ее события Load.
После добавления таблицы в 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()
Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.
См. также
Задачи
Пошаговое руководство. Создание классов LINQ to SQL (реляционный конструктор объектов)
Основные понятия
Методы DataContext (реляционный конструктор объектов)