这是我第一次尝试使用 LINQ to SQL 创建 C# 桌面应用程序和 SQL Server 数据库。一切都很顺利,直到..
我总是得到表的先前值,即使我肯定已经更新了表,并检查了 MSSQL 表中的值是否发生了变化。
这可能是什么原因?
我的代码如下:
A. 打开 StockAdjusment 表单
StockAdjustment stockAdjustment = new StockAdjustment();
stockAdjustment.prepareForm(product);
B. 在里面prepareForm()
我调用代码来查询所选产品的当前数量
inventory = db.Inventories.Where(i => i.ProductID == product.ID).Single();
numCurrentStock.Value = inventory.Current_Quantity;
C. stockAdjustment form Close后,我存储新的库存调整
if (stockAdjustment.ShowDialog() == DialogResult.OK)
{
db.InsertInventoryChange(stockAdjustment.inventory.ID, product.ID, stockAdjustment.stockChange, stockAdjustment.currentStock, stockAdjustment.Date, stockAdjustment.Message);
db.SubmitChanges();
readData();
}
该readData()
方法工作得很好。它将显示新的库存调整,并且产品的当前数量确实发生了变化。我还检查了 SQL Server 表,它确实发生了变化。
D. 但是,每次我打开一个新的 StockAdjustment 对话框时,它总是会显示 Current Quantity 的旧值。
只有当我关闭应用程序并重新启动它时,它才能显示实际值。
不知何故,我认为这是我的应用程序代码问题,而不是 LINQ。但我不知道..
有什么建议吗?