2014-09-11 76 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