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

問題は、結果をに変換して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

于 2012-05-06T21:26:30.320 に答える