私はこの問題に完全に困惑しています。私はしばらく探していましたが、問題を解決する方法についてまだ答えがありません。
値を設定しようとするクエリを実行します。問題は、read only
指定しないと変数として表示されることですSelect New With
。指定するSelect New With
と、データベースは更新されません。コードの一部を以下に示します。
私の目標は、シューターがDataGridView
データベースを更新できるようにすることです。StackOverflow に関する別の質問でDataGridView
、ユーザーがデータを入力するだけではデータベースが更新されないと言われました。そこで、以下のコードを実行する更新ボタンを作成しました。
コード:
クエリを使用Select New With
すると、変数を編集できますが、データベースにコミットしません:
Dim query = From t In db.Trophies _
Select New With {t.TrophyName, t.WinnerId, t.Name, t.Score, t.Printed}
クエリで変数を編集できません。エラー メッセージには、「Property 'TrophyName' is 'ReadOnly':
Dim query = From t In db.Trophies _
Select t.TrophyName, t.WinnerId, t.Name, t.Score, t.Printed
結果を更新するコード:
Dim i as integer = 0
For Each result In query
result.WinnerId = dgvTrophies.Rows(i).Cells(dgvTrophies.Columns("WinnerId").Index).Value
result.Name = dgvTrophies.Rows(i).Cells(dgvTrophies.Columns("Name").Index).Value
result.Score = dgvTrophies.Rows(i).Cells(dgvTrophies.Columns("Score").Index).Value
db.SubmitChanges()
i += 1
Next
テーブル:
PRIMARY KEY TrophyId int auto-increments
TrophyName varchar(50)
WinnerId char(7) Allow Nulls
Name varchar(20) Allow Nulls
Score int Allow Nulls
Printed bit
アドバイスや回答をいただければ幸いです。
編集:に設定しようとしましObjectTrackingEnabled
たTrue
が、問題は解決しませんでした。
編集:ユーザーがデータベースを更新し、更新ボタンを必要としなくなっedit mode
たDataGridView
I 呼び出しを終了した後、より「自動」更新を行うようにします。db.SubmitChanges