Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
запросы LINQ Language-Integrated упрощают доступ к информации в базе данных и позволяют изменять значения в этой базе данных.
В следующем примере показано, как создать новое приложение, которое извлекает и обновляет сведения в базе данных SQL Server.
В примерах в этой статье используется пример базы данных Northwind. Чтобы получить базу данных, см. раздел Загрузка образцов баз данных.
Создание подключения к базе данных
В Visual Studio откройтеобозреватель баз данных/, щелкнув меню "Вид", а затем выберитеобозреватель баз данных/.
Щелкните правой кнопкой мыши \подключения к данным\ в \обозревателе серверов\\/\обозревателе баз данных\ и нажмите \Добавить подключение\.
Укажите допустимое подключение к образцовой базе данных Northwind.
Чтобы добавить проект, используя файл LINQ to SQL
В Visual Studio в меню файл выберите пункт Создать и щелкните Project. Выберите Visual Basic Windows Forms Application в качестве типа проекта.
В меню проекта щелкните Добавить Новый Элемент. Выберите шаблон элемента LINQ to SQL Classes.
Назовите файл
northwind.dbml
. Нажмите кнопку Добавить. Открывается конструктор реляционных объектов (O/R) для файлаnorthwind.dbml
.
Чтобы добавлять таблицы для запросов и изменений в конструктор
В обозревателе серверов /Обозреватель баз данныхразверните подключение к базе данных Northwind. Разверните папку Таблицы.
Если вы закрыли конструктор O/R, его можно повторно открыть, дважды щелкнув
northwind.dbml
файл, добавленный ранее.Щелкните таблицу "Клиенты" и перетащите её в левую панель конструктора.
Конструктор создает новый объект Customer для проекта.
Сохраните изменения и закройте конструктор.
Сохраните проект.
Добавление кода для изменения базы данных и отображение результатов
Из панели элементов перетащите элемент управления DataGridView на форму Windows Form по умолчанию для вашего проекта, Form1.
При добавлении таблиц в конструктор O/R, дизайнер добавил объект DataContext в ваш проект. Этот объект содержит код, который можно использовать для доступа к таблице Customers. Он также содержит код, определяющий локальный объект Customer и коллекцию Customers для таблицы. Объект DataContext проекта называется на основе имени DBML-файла. Для этого проекта объект DataContext называется
northwindDataContext
.Вы можете создать экземпляр DataContext объекта в коде и запросе и изменить коллекцию Customers, указанную конструктором O/R. Изменения, внесенные в коллекцию Customers, не будут отражены в базе данных до тех пор, пока вы не вызовете метод SubmitChanges объекта DataContext.
Дважды щелкните по элементу Windows Form, Form1, чтобы добавить код в событие Load, с целью выполнения запроса к таблице Customers, которая доступна как свойство вашего DataContext. Добавьте следующий код:
Private db As northwindDataContext Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load db = New northwindDataContext() RefreshData() End Sub Private Sub RefreshData() Dim customers = From cust In db.Customers Where cust.City(0) = "W" Select cust DataGridView1.DataSource = customers End Sub
Из панели элементов перетащите три Button элемента управления в форму. Выберите первый элемент управления
Button
. В окне свойств задайте для элемента управленияName
значениеButton
и для свойстваAddButton
значениеText
. Выберите вторую кнопку и установите для свойстваName
значениеUpdateButton
, а для свойстваText
— значениеUpdate
. Нажмите третью кнопку и установите свойствоName
наDeleteButton
и свойствоText
наDelete
.Дважды щелкните кнопку "Добавить ", чтобы добавить код в событие
Click
. Добавьте следующий код:Private Sub AddButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles AddButton.Click Dim cust As New Customer With { .City = "Wellington", .CompanyName = "Blue Yonder Airlines", .ContactName = "Jill Frank", .Country = "New Zealand", .CustomerID = "JILLF"} db.Customers.InsertOnSubmit(cust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Дважды щелкните кнопку "Обновить ", чтобы добавить код в событие
Click
. Добавьте следующий код:Private Sub UpdateButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles UpdateButton.Click Dim updateCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) updateCust.ContactName = "Jill Shrader" updateCust.Country = "Wales" updateCust.CompanyName = "Red Yonder Airlines" updateCust.City = "Cardiff" Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Дважды щелкните кнопку "Удалить ", чтобы добавить код в событие
Click
. Добавьте следующий код:Private Sub DeleteButton_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs ) Handles DeleteButton.Click Dim deleteCust = (From cust In db.Customers Where cust.CustomerID = "JILLF").ToList()(0) db.Customers.DeleteOnSubmit(deleteCust) Try db.SubmitChanges() Catch ' Handle exception. End Try RefreshData() End Sub
Нажмите клавишу F5, чтобы запустить проект. Нажмите кнопку "Добавить ", чтобы добавить новую запись. Нажмите кнопку "Обновить", чтобы изменить новую запись. Нажмите кнопку "Удалить" , чтобы удалить новую запись.