溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

1黑馬程序員—做wpf小項(xiàng)目中,覺得有用的小知識(shí)點(diǎn)小結(jié)

發(fā)布時(shí)間:2020-10-08 19:32:38 來源:網(wǎng)絡(luò) 閱讀:723 作者:charles_xj 欄目:編程語言

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

背景:
過年前,響應(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ù)庫(kù)服務(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)找不到指定的文件?!?/div>
解決辦法:
在app.config里面下入下面的代碼就可以解決問題
<?xml version="1.0"?>  
<configuration>  
<startup  useLegacyV2RuntimeActivationPolicy="true">  
 <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>  
</startup>  
</configuration>  
三、異常統(tǒng)一處理:
在app.config中加入【DispatcherUnhandledException="Application_DispatcherUnhandledException"】,如下:
<Application x:Class="HRMSystem.UI.App"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            StartupUri="MainWindow.xaml"  DispatcherUnhandledException="Application_DispatcherUnhandledException">
   <Application.Resources>
   </Application.Resources>
</Application>
接著在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
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI