初めて 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;
}
これはテーブルを更新する正しい方法ではありませんか?