2013-07-26 7 views
0

enter image description hereConfused на Обновление таблицы с использованием DataGrid

-image сверху коды ниже ....

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()); 
    }     
} 

- мой код на обновление праве? Я запутался, потому что моя таблица не обновляет то, что я храню в этом столбце totalloaded, который считается ячейкой [8] ... я что-то пропустил?

+0

у вас отладки и проверки, он пришел к 'SFC.SubmitChanges' линии, и вы установили' значение TotalLoaded' до этого? – Damith

+0

Да, я сделал .. поток отладки идет гладко без ошибок .. я запускаю весь поток, но потом я проверяю, что в моей таблице нет обновлений .. Я использую тот же код, что и на моей другой форме, хорошо работает, но не на этом .. хотя это был немного другим в другой форме, я никогда не использую какой-либо форлуп в отличие от этого из-за datagrid. –

ответ

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(); 
    } 
} 
+0

он все еще не меняется ... я не знаю почему ... это из-за цикла for? но я проверяю его значения datagrid каждый раз, когда он петлиет, он меняет строку, по которой идет поток, нет ошибок, я не понимаю, почему он не обновляется в таблице ... я даже проверяю rowID, который является Bigint, поэтому он имеет право конвертировать значение datagrid для int64, которое является длинным .. right .. –

+0

Каков первичный ключ этого 'Sales_FGAllocateds'? можете ли вы проверить значение, которое вы получаете при отладке для первичного ключа? а также вы можете проверить сгенерированный SQL, когда вы вызываете 'SubmitChanges', используя' SFC.Log' – Damith

+0

Я вижу .. теперь он обновляется. Я никогда не помещаю первичный ключ, а затем в таблицы, которые объясняют .. большое спасибо за помогите сэр ... –

Смежные вопросы