我在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中更改某些内容,以便使用更新选项吗?
答案 0 :(得分:2)
问题是您要将结果转换为List
,然后获取第一个元素。您将获取数据但不再绑定到数据库。我相信这样的事情会奏效:
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
,则会抛出异常(或者广泛地返回更多记录) )。我假设这个列是一个主键列(看起来像它),并保证行唯一性。