我完全被这个问题难住了。我一直在寻找一段时间,但仍然没有解决问题的答案。
我运行了一个查询,尝试在其中设置值。read only
问题是,如果我不指定,它们会作为变量出现Select New With
。当我指定Select New With
它不会更新数据库。下面列出了一些代码。
我的目标是让射手DataGridView
更新数据库。我在 StackOverflow 上的另一个问题中被告知,DataGridView
不会仅通过用户输入数据来更新数据库。所以我创建了一个更新按钮,它运行下面列出的代码。
代码:
查询 usingSelect New With
允许我编辑变量但不会提交到数据库:
Dim query = From t In db.Trophies _
Select New With {t.TrophyName, t.WinnerId, t.Name, t.Score, t.Printed}
查询不会让我编辑变量。错误消息显示“属性 'TrophyName' 是 '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
调用db.SubmitChanges
更新数据库并且不再需要更新按钮之后。