如何在SQL Server 2008中启用更新选项

时间:2012-05-06 21:15:42

标签: asp.net vb.net sql-server-2008

我在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中更改某些内容,以便使用更新选项吗?

1 个答案:

答案 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,则会抛出异常(或者广泛地返回更多记录) )。我假设这个列是一个主键列(看起来像它),并保证行唯一性。