2013-01-15 52 views
1

我發現從教程驗證碼:查明LINQ SQL更新是否成功?

Product bev1 = beverages.ElementAtOrDefault(10); 
if (bev1 != null) 
{ 
    Console.WriteLine("The price of {0} is {1}. Update to 20.0", 
         bev1.ProductName, bev1.UnitPrice); 
    bev1.UnitPrice = (decimal)20.0; 
} 
// submit the change to database 
db.SubmitChanges(); 

我們怎麼知道更新是否成功?

回答

2

如果更新不成功,則會拋出異常。如果沒有發生異常,那就成功了。

2

單程要知道是沒有例外被拋出

第二種方式確保使用GetChangeSet方法來獲取由數據上下文跟蹤的修改對象。

實例形式MSDN

Northwnd db = new Northwnd(@"c:\northwnd.mdf"); 

var custQuery = 
    from cust in db.Customers 
    where cust.City == "London" 
    select cust; 

foreach (Customer custObj in custQuery) 
{ 
    Console.WriteLine("CustomerID: {0}", custObj.CustomerID); 
    Console.WriteLine("\tOriginal value: {0}", custObj.City); 
    custObj.City = "Paris"; 
    Console.WriteLine("\tUpdated value: {0}", custObj.City); 
} 

//get object modified 
ChangeSet cs = db.GetChangeSet(); 
Console.Write("Total changes: {0}", cs); 
// Freeze the console window. 
Console.ReadLine(); 

db.SubmitChanges(); 
0

這取決於你所說的 「成功」 是什麼。如果成功意味着「沒有錯誤發生」,那麼沒有例外就會告訴你。如果您的意思是「數據庫中的數據已按我的預期更新」,那麼您需要離線查詢數據庫或創建另一個上下文並通過查詢來驗證發生的更改。

您可以編寫不會產生異常但不按照您預期的方式更新數據庫的代碼。