------- Windows Phone 7手機(jī)開發(fā)、.Net培訓(xùn)、期待與您交流! -------

目前成都創(chuàng)新互聯(lián)公司已為超過千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、綿陽服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、屯昌網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
背景:
過年前,響應(yīng)黑馬.net論壇呂老師《【活動(dòng)】20天,做項(xiàng)目得積分,是大牛你就來........》(http://bbs.itheima.com/thread-37622-1-1.html)的帖子,學(xué)習(xí)了楊中科老師的wpf教程,參與了此活動(dòng)。先將項(xiàng)目中遇到的幾個(gè)小知識(shí)點(diǎn)分享下。
一、TransactionScope的使用:
(目的:多表操作時(shí),有時(shí)候希望,一張表數(shù)據(jù)操作失敗,其他表被數(shù)據(jù)數(shù)據(jù)能回滾等)
第一步:引入dll:using System.Transactions;
第二步:(參考此例子)
實(shí)例:
using (TransactionScope ts = new TransactionScope())
{
DepartmentDAL dal = new DepartmentDAL();
dal.Insert("測(cè)試1");//第一個(gè)sql語句操作
Operator op = new Operator();
op.UserName = "hello";
op.Password = "33333";
op.RealName = "haha";
new OperatorDAL().Insert(op);////第二個(gè)sql語句操作
ts.Complete();//一定要complete,否則數(shù)據(jù)無法提交
}
但是,使用TransactionScope需要配置如下信息:
在控制面板--->管理工具--->服務(wù) 中,開啟Distributed Transaction Coordinator 服務(wù)。
a.控制面板->管理工具->組件服務(wù)->計(jì)算機(jī)->我的電腦->右鍵->屬性
b.選擇MSDTC頁, 確認(rèn)"使用本地協(xié)調(diào)器"
c.點(diǎn)擊下方"安全配置"按鈕
d.勾選: "允許網(wǎng)絡(luò)DTC訪問","允許遠(yuǎn)程客戶端","允許入站","允許出站","不要求進(jìn)行身份驗(yàn)證".
e.對(duì)于數(shù)據(jù)庫
服務(wù)器端, 可選擇"要求對(duì)呼叫方驗(yàn)證"
f.勾選:"啟用事務(wù)Internet協(xié)議(TIP)事務(wù)"。
g.在雙方防火墻中增加MSDTC.exe例外
可用命令行: netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable
二、使用水晶報(bào)表時(shí),報(bào)錯(cuò),如:Crystal Reports for vs2010 運(yùn)行找不到文件 crdb_adoplus.dll'
在使用水晶報(bào)表時(shí),報(bào)錯(cuò):【Could not load file or assembly 'file:///C:/Program Files/SAP BusinessObjects/Crystal Reports for .NET Framework 4.0/Common/SAP BusinessObjects Enterprise XI 4.0/win32_x86/dotnet1/crdb_adoplus.dll' or one of its dependencies. 系統(tǒng)找不到指定的文件。】
解決辦法:
在app.config里面下入下面的代碼就可以解決問題
三、異常統(tǒng)一處理:
在app.config中加入【DispatcherUnhandledException="Application_DispatcherUnhandledException"】,如下:
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml" DispatcherUnhandledException="Application_DispatcherUnhandledException">
接著在app.cs中加入處理時(shí)間:
public partial class App : Application
{
private void Application_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
//在Application_DispatcherUnhandledException中集中處理異常
MessageBox.Show("程序中出現(xiàn)了嚴(yán)重錯(cuò)誤,請(qǐng)聯(lián)系開發(fā)人員 charles xiao!" + e.Exception.Message);
e.Handled = true;
}
}
-------
http://charlesxiao.blog.51cto.com/all/2657172
新聞標(biāo)題:1黑馬程序員—做wpf小項(xiàng)目中,覺得有用的小知識(shí)點(diǎn)小結(jié)
URL標(biāo)題:
http://news.spvevtbd.cn/article/pohcpp.html