Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Language-Integrated запрос (LINQ) упрощает доступ к данным базы данных и выполнение запросов.
В следующем примере показано, как создать приложение, которое выполняет запросы к базе данных SQL Server. Образец подсчитывает количество, суммирует и вычисляет средние значения результатов с использованием клауз Aggregate и Group By. Дополнительные сведения см. в агрегатном предложении и предложении GROUP BY.
В примерах в этой статье используется пример базы данных 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 Designer.
В обозревателе серверов /Обозреватель баз данныхразверните подключение к базе данных 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, чтобы выполнить запрос к таблицам, которые представлены как свойства вашего DataContext, и вычислить количество, сумму и среднее значение результатов. В примере используется предложениеAggregateдля запроса к одному результату, а предложениеGroup Byотображает среднее значение для сгруппированных результатов.Dim db As New northwindDataContext Dim msg = "" Dim londonCustomerCount = Aggregate cust In db.Customers Where cust.City = "London" Into Count() msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf Dim averageOrderCount = Aggregate cust In db.Customers Where cust.City = "London" Into Average(cust.Orders.Count) msg &= "Average number of Orders per customer: " & averageOrderCount & vbCrLf Dim venezuelaTotalOrders = Aggregate cust In db.Customers Where cust.Country = "Venezuela" Into Sum(cust.Orders.Count) msg &= "Total number of orders from Customers in Venezuela: " & venezuelaTotalOrders & vbCrLf MsgBox(msg) Dim averageCustomersByCity = From cust In db.Customers Group By cust.City Into Average(cust.Orders.Count) Order By Average DataGridView1.DataSource = averageCustomersByCity 'Another way to grab the count and sum londonCustomerCount = (From cust in db.Customers Where cust.City = "London").Count() venezuelaTotalOrders = (From cust in db.Customers Where cust.Country = "Venezuela" Select cust.Orders).Sum()Нажмите клавишу F5, чтобы запустить проект и просмотреть результаты.