Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Language-Integrated запрос (LINQ) упрощает доступ к данным базы данных и выполнение запросов.
В следующем примере показано, как создать приложение, которое выполняет запросы к базе данных SQL Server.
В примерах в этой статье используется пример базы данных Northwind. Чтобы получить базу данных, см. раздел «Загрузка примерных баз данных».
Заметка
На компьютере могут отображаться различные имена или расположения для некоторых элементов пользовательского интерфейса Visual Studio в следующих инструкциях. Выпуск Visual Studio, который у вас есть, и параметры, которые вы используете, определяют эти элементы. Дополнительные сведения см. в разделе Персонализация интегрированной среды разработки.
Создание подключения к базе данных
В Visual Studio откройте Обозреватель серверов/и Обозреватель баз данных, щелкнув Обозреватель серверов/Обозреватель баз данных в меню Вид.
Щелкните правой кнопкой мыши подключения к данным в обозревателе серверов /Обозревателя баз данных, а затем щелкните Добавить подключение.
Укажите допустимое подключение к образцу базы данных Northwind.
Добавление проекта, содержащего файл LINQ to SQL
В Visual Studio в меню файл выберите пункт Создать и щелкните Project. Выберите Visual Basic Windows Forms приложения как тип проекта.
В меню проекта щелкните Добавить Новый Элемент. Выберите шаблон элемента LINQ to SQL Classes.
Назовите файл
northwind.dbml
. Нажмите кнопку Добавить. Конструктор реляционных объектов (конструктор O/R) открыт для файла northwind.dbml.
Добавление таблиц в запрос в O/R конструктор
В обозревателе серверов /Обозреватель баз данныхразверните подключение к базе данных Northwind. Разверните папку Таблиц.
Если вы закрыли конструктор O/R, его можно повторно открыть, дважды щелкнув файл northwind.dbml, который вы добавили ранее.
Щелкните таблицу "Клиенты" и перетащите ее в левую область конструктора. Щелкните таблицу "Заказы" и перетащите ее в левую панель конструктора.
Конструктор создает новые объекты
Customer
иOrder
для проекта. Обратите внимание, что конструктор автоматически обнаруживает связи между таблицами и создает дочерние свойства для связанных объектов. Например, IntelliSense покажет, что объектCustomer
имеет свойствоOrders
для всех заказов, связанных с этим клиентом.Сохраните изменения и закройте конструктор.
Сохраните проект.
Добавление кода для запроса к базе данных и отображение результатов
Из панели элементовперетащите элемент управления DataGridView в форму Windows Form по умолчанию для проекта Form1.
Дважды щелкните Form1, чтобы добавить код в событие
Load
формы.При добавлении таблиц в конструктор O/R, дизайнер добавил объект DataContext для вашего проекта. Этот объект содержит код, который необходимо получить для доступа к этим таблицам, помимо отдельных объектов и коллекций для каждой таблицы. Объект DataContext проекта называется на основе имени DBML-файла. Для этого проекта объект DataContext называется
northwindDataContext
.Вы можете создать экземпляр DataContext в коде и запросить таблицы, указанные конструктором O/R.
Добавьте следующий код в событие
Load
для запроса таблиц, предоставляемых в качестве свойств контекста данных.Dim db As New northwindDataContext Dim londonCusts = From cust In db.Customers Where cust.City = "London" Select cust DataGridView1.DataSource = londonCusts
Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.
Ниже приведены некоторые дополнительные запросы, которые можно попробовать:
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