Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
запросы 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, чтобы запустить проект. Нажмите кнопку "Добавить ", чтобы добавить новую запись. Нажмите кнопку "Обновить", чтобы изменить новую запись. Нажмите кнопку "Удалить" , чтобы удалить новую запись.