2012-01-19 41 views
0

我正在ASP.NET C#應用程序中使用LINQ to Entities。下面的代碼是我嘗試在我的sql數據庫中更新(或重置)一個值'AvgRideTime'爲null。然而,它似乎什麼都不做,沒有錯誤,只是沒有。有什麼想法嗎?ASP.NET LINQ(C#)更新語法

protected void ResetAvgRT_Click(object sender, EventArgs e) 
     { 
      using (RamRideOpsEntities myEntities = new RamRideOpsEntities()) 
      { 
       var avgTime = (from a in myEntities.AdminOptions 
           select a.AvgRideTime).First(); 

       if (avgTime != null) 
       { 
        avgTime = null; 
        myEntities.SaveChanges(); 
       } 
      } 
     } 

回答

1
var avgTime = myEntities.AdminOptions.First(); 

      if (avgTime != null) 
      { 
       avgTime.AvgRideTime = null; 
       myEntities.SaveChanges(); 
      } 

嘗試上面的代碼。

+0

很酷,看起來我們有一個贏家(: ..我使用gridview雖然爲顯示,什麼是最好的方式來更新那顯示?有沒有其他方法手動設置顯示的值? – SHeinema

+0

你可以重新綁定你的網格一旦它已經更新.. –

0

也許avgTime得到一個空值。

+0

不錯的想法,但我檢查,它確實得到正確的價值。 – SHeinema

0

嘗試使用以下代碼

protected void ResetAvgRT_Click(object sender, EventArgs e) 
{ 
    using (RamRideOpsEntities myEntities = new RamRideOpsEntities()) 
    { 
     var avgTime = (from a in myEntities.AdminOptions 
          select a).First(); 
     if (a.avgTime != null) 
     { 
      a.avgTime = null; 
      myEntities.Entry(a).State = EntityState.Modified; 
      myEntities.SaveChanges(); 
     } 
    } 
} 
+0

nope,對不起,關閉'後'var'超出範圍') – SHeinema

1

avgTime這是鏈接到對象,當您設置avgTime = null時,avgTime不引用對象,但myEntities.AdminOptions包含此對象。

+0

啊,有道理..如果它只是一個參考,那麼我所做的就是設置參考爲null。thx。 – SHeinema