使用DataGrid更新表时感到困惑

时间:2013-07-26 02:53:43

标签: c# linq datagridview

enter image description here

- 下方代码上的图像......

private void Save_FGARec()
{            
    try
    {                
        for(int x= 0; x < FGAdataGrid.Rows.Count; x++)
        {
            sysSFCDBDataContext SFC = new sysSFCDBDataContext();
            Sales_FGAllocated FGA = SFC.Sales_FGAllocateds.FirstOrDefault(r => r.RowID == Convert.ToInt64(FGAdataGrid.Rows[x].Cells[0].Value));
            if (FGAdataGrid.Rows[x].Cells[0].Value != null)
            {                         
                FGA.TotalLoaded = Convert.ToInt64(FGAdataGrid.Rows[x].Cells[6].Value);
                SFC.SubmitChanges();
            }
            else 
            {
                SFC.Connection.Close();
            }
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message.ToString());
    }                
}

- 我的代码是否正确更新?我很困惑因为我的表没有更新我存储在这个列总计的内容,它被计为单元格[8] ...我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

尝试下面,不确定这会解决问题,但可能是您没有使用当前代码正确处理/关闭数据上下文。您可以使用using阻止,如下所示

using (sysSFCDBDataContext SFC = new sysSFCDBDataContext())
{
    Sales_FGAllocated FGA = SFC.Sales_FGAllocateds.FirstOrDefault(r => r.RowID == Convert.ToInt64(FGAdataGrid.Rows[x].Cells[0].Value));

    if (FGAdataGrid.Rows[x].Cells[0].Value != null)
    {
        FGA.TotalLoaded = Convert.ToInt64(FGAdataGrid.Rows[x].Cells[6].Value);
        SFC.SubmitChanges();
    }
}