我第一次使用 LINQ,遇到了一个奇怪的问题。我正在使用 MS SQL 2008。如果我更改一行并 SubmitChanges(),我可以在 SQL Server Management Studio 中看到更改,但是当我查询以使用更新的信息重新填充 dataGridViews 时,我会得到旧版本的数据。
以下是我的数据的更改:
if (textBox1.Text.Length > 1)
{
var query = from eq in db.equipments
where eq.SerNo == serial
select eq;
foreach (equipment equip in query)
{
equip.Loc = textBox1.Text;
equip.Owner = "Evisive";
equip.Status = updatedStatus;
equip.SystemName = "";
}
db.SubmitChanges();
}
else
{
MessageBox.Show("Enter a Destination");
}
该部分再次起作用(更改数据库中的数据)。下面是我尝试更新表格的地方(似乎不起作用的部分):
public void Update_EquipmentGrid()
{
BindingSource b = new BindingSource();
b.DataSource = from eq in db.equipments
select eq;
dataGridView2.DataSource = b;
}
这不是更新表格的正确方法吗?
最佳答案
想通了。此链接对此进行了解释。
http://msdn.microsoft.com/en-us/library/Bb386982(v=vs.110).aspx
代码应该是:
InventoryDataContext dba = new InventoryDataContext();
BindingSource b = new BindingSource();
b.DataSource = from eq in dba.equipments
select eq;
dataGridView2.DataSource = b;
不知道为什么,但每次更新时都需要创建 DataContext 的新实例。
关于c# - Linq 到 SQL : Updating dataGridView after SubmitChanges isn't working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16320880/