Практическое руководство. Обновление строк в базе данных
Строки в базе данных можно обновить, изменив значения элементов объектов, связанных с коллекцией LINQ to SQL Table<TEntity> , а затем отправив изменения в базу данных. LINQ to SQL преобразует изменения в соответствующие команды SQL UPDATE
.
Примечание.
Вы можете переопределить методы LINQ to SQL по умолчанию для Insert
операций с базами Update
данных и Delete
баз данных. Дополнительные сведения см. в разделе "Настройка операций вставки, обновления и удаления".
Разработчики с помощью Visual Studio могут использовать реляционный конструктор объектов для разработки хранимых процедур с той же целью.
В следующих шагах предполагается, что подключение к базе данных Northwind выполняется с помощью допустимого объекта DataContext. Дополнительные сведения см. в статье "Практическое руководство. Подключение в базу данных".
Чтобы обновить строку в базе данных, выполните следующие действия.
Отправьте в базу данных запрос на обновляемую строку.
Внесите необходимые изменения в значения элементов в результирующем объекте LINQ to SQL.
Отправьте изменения в базу данных.
Пример
В следующем примере выполняются запросы к базе данных для заказа № 11000, а затем изменяются значения ShipName
и ShipVia
полученного объекта Order
. И наконец, изменения этих членов отправляются в базу данных в качестве изменений столбцов ShipName
и ShipVia
.
// Query the database for the row to be updated.
var query =
from ord in db.Orders
where ord.OrderID == 11000
select ord;
// Execute the query, and change the column values
// you want to change.
foreach (Order ord in query)
{
ord.ShipName = "Mariner";
ord.ShipVia = 2;
// Insert any additional changes to column values.
}
// Submit the changes to the database.
try
{
db.SubmitChanges();
}
catch (Exception e)
{
Console.WriteLine(e);
// Provide for exceptions.
}
' Query the database for the row to be updated.
Dim ordQuery = _
From ord In db.Orders _
Where ord.OrderID = 11000 _
Select ord
' Execute the query, and change the column values
' you want to change.
For Each ord As Order In ordQuery
ord.ShipName = "Mariner"
ord.ShipVia = 2
' Insert any additional changes to column values.
Next
' Submit the changes to the database.
Try
db.SubmitChanges()
Catch e As Exception
Console.WriteLine(e)
' Make some adjustments.
' ...
' Try again
db.SubmitChanges()
End Try