我在 vb.net 2022 中使用此代码来更新数据库中的数据,但它一次只更新一列。
如何让它及时更新所有列?我对 linq 很陌生。
Dim x = (From table In _context.tb_ExpLists Where
table.Expl_id = ComboBox1.SelectedValue.ToString).ToList(0)
x.exp_name = TextBox8.Text
x.exp_desc = TextBox7.Text
x.exp_limit = TextBox4.Text
x.exp_type = TextBox3.Text
_context.SubmitChanges()
在模块中我设置了
Public _context As New DataClasses1DataContext()
我发现很多帖子都在谈论 foreach 循环,但对我来说都不起作用。
这个:
.ToList(0)
实际上相当于这个:
.ToList().Item(0)
因此您正在创建列表,然后从该列表中获取第一项。如果您不想只影响第一项,请不要只获取第一项。获取整个列表并将其分配给一个变量,然后使用该变量循环整个列表:
Dim list = (From table In _context.tb_ExpLists
Where table.Expl_id = ComboBox1.SelectedValue.ToString()).ToList()
For Each item In list
item.exp_name = TextBox8.Text
item.exp_desc = TextBox7.Text
item.exp_limit = TextBox4.Text
item.exp_type = TextBox3.Text
Next
事实上,在这种情况下,您甚至不需要
ToList
调用,除非您还打算将该列表用于其他用途。您可以直接枚举查询结果:
Dim list = From table In _context.tb_ExpLists
Where table.Expl_id = ComboBox1.SelectedValue.ToString()
For Each item In list
item.exp_name = TextBox8.Text
item.exp_desc = TextBox7.Text
item.exp_limit = TextBox4.Text
item.exp_type = TextBox3.Text
Next