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


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

Обновлен: Ноябрь 2007

Запросы, интегрированные в язык программирования (Language-Integrated Query, LINQ), упрощают доступ к содержимому базы данных и обеспечивают выполнение запросов.

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

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

Bb907138.alert_note(ru-ru,VS.90).gifПримечание.

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

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

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

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

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

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

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

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

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

Добавление таблицы к запросу в реляционном конструкторе объектов

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

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

  2. Щелкните таблицу "Клиенты" и перетащите ее в левую область конструктора. Щелкните таблицу "Заказы" и перетащите ее в левую область конструктора.

    В конструкторе создаются новые объекты Customer и Order для проекта. Обратите внимание, что конструктор автоматически обнаруживает связи между таблицами и создает дочерние свойства для связанных объектов. Например, функция IntelliSense покажет, что в объекте Customer имеется свойство Orders для всех заказов, связанных с клиентом.

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

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

Добавление кода в запрос к базе данных и отображение результатов

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

  2. Дважды щелкните Form1, чтобы добавить код в событие Load формы.

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

    Можно создать экземпляр DataContext в коде и запросить таблицы, указанные реляционным конструктором объектов.

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

    Dim db As New northwindDataContext
    
    Dim londonCusts = From cust In db.Customers _
                      Where cust.City = "London" _
                      Select cust
    
    DataGridView1.DataSource = londonCusts
    
  4. Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.

  5. Ниже приведены некоторые дополнительные запросы, которые можно попытаться выполнить.

    Dim londonCustOrders = From cust In db.Customers, _
                                ord In cust.Orders _
                           Where cust.City = "London" _
                           Order By ord.OrderID _
                           Select cust.City, ord.OrderID, ord.OrderDate
    
    DataGridView1.DataSource = londonCustOrders
    
    
    ...
    
    
    Dim custs = From cust In db.Customers _
                Where cust.Country = "France" _
                    And (cust.CompanyName.StartsWith("F") _
                    Or cust.CompanyName.StartsWith("V")) _
                Order By cust.CompanyName _
                Select cust.CompanyName, cust.City
    
    DataGridView1.DataSource = custs
    

См. также

Задачи

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

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

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

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

LINQ в Visual Basic

Запросы (Visual Basic)

LINQ to SQL