2014-09-11 45 views
1

我想查詢它會引發錯誤。下面是代碼如何從asp.net中的Linq獲取上次執行的查詢?

try{ 
if (list1 != null) 
      { 
       foreach (cca item in list1) 
       { 
         db.CCAs.InsertOnSubmit(item); 
       } 
      } 
if (list2 != null) 
      { 
       foreach (cca1 item1 in list2) 
       { 
         db.CCAs1.InsertOnSubmit(item1); 
       } 
      } 
db.SubmitChanges(); 
} 
catch 
{ 
} 

在catch中,我想要得到哪個查詢拋出錯誤。我只想檢索受影響的查詢。

回答

1

在你的情況,你可以將節省像操作:

try 
{ 
    if (list1 != null) 
    { 
     foreach (cca item in list1) 
     { 
      db.CCAs.InsertOnSubmit(item); 
     } 
     db.SubmitChanges(); 
    } 
} 
catch 
{ 
    //write error into log 
} 
try 
{ 
    if (list2 != null) 
    { 
     foreach (cca1 item1 in list2) 
     { 
      db.CCAs1.InsertOnSubmit(item1); 
     } 

     db.SubmitChanges(); 
    } 
} 
catch 
{ 
    //write error into log 
} 

現在,你需要2個調用數據庫,但它允許容易處理異常。

UPD 我不知道,但你可以在你的catch塊嘗試這樣的:

catch (YourExpectedExceptionType ex) 
{ 
    //write into log for e.g 
    _log.Write(ex.InnerExeption); 
    _log.Write(ex.Source); 
} 
+0

這需要,如果我爲每個列表分貝呼籲更多的時間。每個列表都有超過5000條記錄要更新。 – sara 2014-09-11 10:42:31

+0

嘗試捕獲DataException並查找導致異常的源表。 – DineshKumar 2014-09-11 11:01:44

+0

@sara我更新了我的答案 – Viacheslav 2014-09-11 18:52:23

相關問題