0

我在 ASP.NET(初学者)中工作,我尝试使用下面的代码进行更新查询。我尝试使用相同的代码从数据库中获取日期,它工作正常,但仅不适用于更新查询。

注意:我使用 LINQ

Dim updateCust = (From cust In db.Customers 
                  Where cust.CustomerID = "JILLF").ToList()(0)

updateCust.ContactName = "Jill Shrader"

Try
    db.SubmitChanges()
Catch
    ' Handle exception.
End Try

RefreshData()

我从以下网址获得此代码:http: //msdn.microsoft.com/en-us/library/bb907191.aspx

我是否应该更改我的 SQL Server 2008 中的某些内容以便可以使用更新选项?

4

1 回答 1

2

问题是您将结果转换为 aList然后取第一个元素。您将获得数据,但它不再绑定到数据库。我相信这样的事情会起作用:

Dim updateCust = (From cust In db.Customers 
                  Where cust.CustomerID = "JILLF").FirstOrDefault()

If updateCust IsNot Nothing Then
    updateCust.ContactName = "Jill Shrader"
End If

db.SubmitChanges()

编辑

虽然在这里可以正常工作,但如果有多个相同的记录(或广泛地返回更多记录),FirstOrDefault()您可能希望使用它会引发异常。我假设该列是主键列(看起来像)并且保证了行的唯一性。SingleOrDefault()CustomerID

于 2012-05-06T21:26:30.320 回答