CodehighlightingproducedbyActiproCodeHighlighter(freeware)
http://www.CodeHighlighter.com/

--" />

亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

DataRabbit 輕量的ORM框架(18)-- 捕獲數(shù)據(jù)

系統(tǒng) 2500 0

最新版本的DataRabbit(版本號(hào):V3.2)新增一項(xiàng)重要功能--可以捕獲訪問(wèn)數(shù)據(jù)庫(kù)時(shí)產(chǎn)生的異常的詳細(xì)信息,包括:異常對(duì)象、Sql語(yǔ)句、sql參數(shù)的名稱和值。這是由 IDBOperationLogger 接口提供支持的。

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> /// <summary>
/// IDBOperationLogger用于捕獲住DB操作異常。可以用于記錄DB操作失敗時(shí)的語(yǔ)句和參數(shù)。
/// </summary>
public interface IDBOperationLogger
{
void LogException( Exception ee, string methodName, string cmdText, IDataParameterCollection parameters);
}

當(dāng)通過(guò)DataRabbit訪問(wèn)數(shù)據(jù)庫(kù)時(shí),所產(chǎn)生的任何異常,都會(huì)被 IDBOperationLogger 接口捕獲住,你可以實(shí)現(xiàn)自己的Filter來(lái)對(duì)捕獲的異常進(jìn)行處理,比如,記錄下執(zhí)行失敗的SQL語(yǔ)句和對(duì)應(yīng)的參數(shù)值。

DataRabbit內(nèi)部提供了 IDBOperationLogger 接口的兩種實(shí)現(xiàn): EmptyDBOperationLogger DBOperationLogger EmptyDBOperationLogger 將忽略異常信息,而 DBOperationLogger 將會(huì)把異常的詳細(xì)信息記錄到日志文件。

比如,在數(shù)據(jù)庫(kù)的Student表中插入一條記錄時(shí),產(chǎn)生主鍵沖突的異常,則 DBOperationLogger 會(huì)記錄類似下面的的日志:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> 2008 / 11 / 19 11 : 49 : 20 :高--違反了PRIMARYKEY約束 ' PK_Student ' 。不能在對(duì)象 ' dbo.Student ' 中插入重復(fù)鍵。語(yǔ)句已終止。錯(cuò)誤類型:System.Data.SqlClient.SqlException。位置:
< dbCommand >
< method > ExcuteCommand </ method >
< text > INSERTINTOStudent([AutoID],[Name],[Age],[Comment])VALUES(@AutoID,@Name,@Age,@Comment) </ text >
< parameters >
< paraname = " @AutoID " value = " 0 " />
< paraname = " @Name " value = " Sky " />
< paraname = " @Age " value = " 30 " />
< paraname = " @Comment " value = " NoComment " />
</ parameters >
</ dbCommand >

日志中,< dbCommand>節(jié)點(diǎn)下的 <text> 子節(jié)點(diǎn)的內(nèi)容就是執(zhí)行失敗的SQL語(yǔ)句,而 < parameters > 節(jié)點(diǎn)下的子節(jié)點(diǎn)則列出了所有的參數(shù)名稱及其對(duì)應(yīng)的值。

那么,如何注入 IDBOperationLogger 實(shí)例到DataRabbit框架中了?通過(guò) TransactionScopeFactory DBOperationLogger 屬性。例如:

<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--> DataConfiguration config = ;
TransactionScopeFactory transactionScopeFactory
= new TransactionScopeFactory ();
transactionScopeFactory.DataConfiguration
= config;
transactionScopeFactory. DBOperationLogger
= new DBOperationLogger ( " DBException.txt " );
transactionScopeFactory.Initialize();

上述配置會(huì)將異常日志記錄到當(dāng)前目錄下的DBException.txt 文件中。

如果不設(shè)置 DBOperationLogger 屬性,則DataRabbit框架默認(rèn)采用 EmptyDBOperationLogger。

記錄執(zhí)行失敗的SQL語(yǔ)句和對(duì)應(yīng)的參數(shù)值,對(duì)于我們分析異常產(chǎn)生的原因是十分有用的,而DataRabbit可以自動(dòng)為你記錄了這些信息。

關(guān)于V3.2版本的DataRabbit 請(qǐng)到 DataRabbit 輕量的ORM框架(00) -- 序 文末處下載,謝謝!

DataRabbit 輕量的ORM框架(18)-- 捕獲數(shù)據(jù)庫(kù)訪問(wèn)異常的詳細(xì)信息


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 婷婷综合久久狠狠色99h | 国产大片91精品免费观看不卡 | 在线欧美日韩 | 亚洲天天综合网 | 久久精品国产国产精品四凭 | 国产欧美在线观看 | 国产在线视频精品视频免费看 | 久久久久免费观看 | 亚洲国产成人最新精品资源 | 日本玖玖 | 国产成人免费视频精品一区二区 | 国产在线一91区免费国产91 | 国产福利免费观看 | 97在线观看播放 | 蜜桃久久久久久久久久久 | 91精品国产人成网站 | a毛片免费 | 91亚洲精品国产自在现线 | 视频福利一区 | 天天操天天射天天色 | 国产成人黄网址在线视频 | 成人免费久久精品国产片久久影院 | 奇米欧美成人综合影院 | 国产亚洲精品国产第一 | 在线亚洲日产一区二区 | 四虎精品免费久久 | 青青青青久在线观看视频 | 色综合天天综久久久噜噜噜久久〔 | 国产原创精品 | 成人影院免费观看 | 干干干日日日 | 911国产视频 | 亚洲美女性生活视频 | 色视频网站在线观看 | 美国一级毛片片aa成人 | 亚洲免费视频一区二区三区 | 国产亚洲视频在线观看 | 亚洲国产激情在线一区 | 亚洲欧美日韩激情在线观看 | 四虎永久在线观看免费网站网址 | 免费观看91视频 |