2017-03-17 114 views
0

我想挖一個行和更新數據庫,但該變量保持返回0。變量返回零

 int uamId = Convert.ToInt32(lblId.Text); 
     tbl_UAM uam = new tbl_UAM(); 
     using (var context = new DemoDbEntities()) 
     { 
      var uamToUpdate = context.tbl_UAM.SingleOrDefault(UpDateuam => uamId == uam.Id); 
      if(uamToUpdate!=null) 
      { 
       uamToUpdate.MDMRefNumber = tbxMDMRefNum.Text; 
       uamToUpdate.SARId = tbxSARId.Text; 
       uamToUpdate.DateOfBirthInGreenCard = tbxDoBGreenCard.Text; 
       uamToUpdate.DateOfBirthUAM = tbxDoBUAM.Text; 
      } 
      context.SaveChanges(); 
     } 

uam.Idvar uamToUpdate = context.tbl_UAM.SingleOrDefault(UpDateuam => uamId == uam.Id);始終爲0。所以在我if聲明中,答案總是錯誤的,我不能更新它。我在做什麼錯,uam.Id總是返回0?

+3

在第二行中,您有tbl_UAM uam = new tbl_UAM(); 它是否爲uam對象實例化一個新的ID?如果沒有,那麼你將不會有一個匹配的ID,因此結果將永遠是0 –

回答

3

我想你的意思是這個(看看SingleOrDefault的謂詞)

int uamId = Convert.ToInt32(lblId.Text); 
     tbl_UAM uam = new tbl_UAM(); 
     using (var context = new DemoDbEntities()) 
     { 
      var uamToUpdate = context.tbl_UAM.SingleOrDefault(upDateuam => upDateuam.Id == uamId); 
      if(uamToUpdate!=null) 
      { 
       uamToUpdate.MDMRefNumber = tbxMDMRefNum.Text; 
       uamToUpdate.SARId = tbxSARId.Text; 
       uamToUpdate.DateOfBirthInGreenCard = tbxDoBGreenCard.Text; 
       uamToUpdate.DateOfBirthUAM = tbxDoBUAM.Text; 
      } 
      context.SaveChanges(); 
     } 
+0

我怎麼能看不到這個!!!!!!!!!!!!!我從早上起就一直在這裏!非常感謝夥伴 – Ali

+1

Np。狗屎發生 –

2

你在第二行intializing UAM

我覺得你的意思是:

int uamId = Convert.ToInt32(lblId.Text); 
using (var context = new DemoDbEntities()) 
    { 
     var uamToUpdate = context.tbl_UAM.SingleOrDefault(UpDateuam => UpDateuam.Id == uamId); 
     if(uamToUpdate!=null) 
     { 
      uamToUpdate.MDMRefNumber = tbxMDMRefNum.Text; 
      uamToUpdate.SARId = tbxSARId.Text; 
      uamToUpdate.DateOfBirthInGreenCard = tbxDoBGreenCard.Text; 
      uamToUpdate.DateOfBirthUAM = tbxDoBUAM.Text; 
     } 
     context.SaveChanges(); 
    } 
2

我認爲你的意思是這樣:

var uamToUpdate = context.tbl_UAM.SingleOrDefault(UpDateuam => UpDateuam.Id == uamId); 
0

爲什麼你要比較謂詞中的uam.Id,它是新創建的實例?所以它將始終爲零,並且不會在數據庫中找到任何記錄。所以你的情況是失敗的。