﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-随风漂流-文章分类-.NET技术</title><link>http://www.blogjava.net/Martin-Liu-Hai-Shi/category/35027.html</link><description>JAVA开源技术的最爱</description><language>zh-cn</language><lastBuildDate>Thu, 19 Mar 2009 10:33:25 GMT</lastBuildDate><pubDate>Thu, 19 Mar 2009 10:33:25 GMT</pubDate><ttl>60</ttl><item><title>C#语言中TransactionScope类的使用</title><link>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/260286.html</link><dc:creator>aisoft</dc:creator><author>aisoft</author><pubDate>Tue, 17 Mar 2009 09:02:00 GMT</pubDate><guid>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/260286.html</guid><wfw:comment>http://www.blogjava.net/Martin-Liu-Hai-Shi/comments/260286.html</wfw:comment><comments>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/260286.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Martin-Liu-Hai-Shi/comments/commentRss/260286.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Martin-Liu-Hai-Shi/services/trackbacks/260286.html</trackback:ping><description><![CDATA[<p>如果在C#中使用TransactionScope类(分布式事务),则须注意如下事项:<br />
1、在项目中引用using System.Transactions命名空间（先要在添加net组件的引用）;</p>
<p>2、具体示例如下：<br />
&nbsp;&nbsp;</p>
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_8_370_Open_Image" onclick="this.style.display='none'; Codehighlighter1_8_370_Open_Text.style.display='none'; Codehighlighter1_8_370_Closed_Image.style.display='inline'; Codehighlighter1_8_370_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_8_370_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_8_370_Closed_Text.style.display='none'; Codehighlighter1_8_370_Open_Image.style.display='inline'; Codehighlighter1_8_370_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_8_370_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_8_370_Open_Text"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;发送消息<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="sendUserId"&gt;&lt;/param&gt;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="toUser"&gt;</span><span style="color: #008000">格式7FFA3AF2-E74B-4174-8403-5010C53E49A7|userName,7FFA3AF2-E74B-4174-8403-5010C53E49A7|userName</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="content"&gt;&lt;/param&gt;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="sendedStatus"&gt;</span><span style="color: #008000">表示已送</span><span style="color: #808080">&lt;/param&gt;</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;returns&gt;&lt;/returns&gt;</span></span><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;sendMessage(</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sendUserId,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;toUser,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;content,&nbsp;</span><span style="color: #0000ff">string</span><span style="color: #000000">&nbsp;sendedStatus)<br />
<img id="Codehighlighter1_488_1555_Open_Image" onclick="this.style.display='none'; Codehighlighter1_488_1555_Open_Text.style.display='none'; Codehighlighter1_488_1555_Closed_Image.style.display='inline'; Codehighlighter1_488_1555_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" /><img id="Codehighlighter1_488_1555_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_488_1555_Closed_Text.style.display='none'; Codehighlighter1_488_1555_Open_Image.style.display='inline'; Codehighlighter1_488_1555_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_488_1555_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_488_1555_Open_Text"><span style="color: #000000">{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;receiveCount&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TransactionOptions&nbsp;transactionOption&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TransactionOptions();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">设置事务隔离级别</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transactionOption.IsolationLevel&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;System.Transactions.IsolationLevel.ReadCommitted;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;设置事务超时时间为60秒</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;transactionOption.Timeout&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TimeSpan(</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">0</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">60</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(TransactionScope&nbsp;scope&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;TransactionScope(TransactionScopeOption.Required,&nbsp;transactionOption))<br />
<img id="Codehighlighter1_957_1512_Open_Image" onclick="this.style.display='none'; Codehighlighter1_957_1512_Open_Text.style.display='none'; Codehighlighter1_957_1512_Closed_Image.style.display='inline'; Codehighlighter1_957_1512_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_957_1512_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_957_1512_Closed_Text.style.display='none'; Codehighlighter1_957_1512_Open_Image.style.display='inline'; Codehighlighter1_957_1512_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_957_1512_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_957_1512_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">try</span><span style="color: #000000"><br />
<img id="Codehighlighter1_995_1343_Open_Image" onclick="this.style.display='none'; Codehighlighter1_995_1343_Open_Text.style.display='none'; Codehighlighter1_995_1343_Closed_Image.style.display='inline'; Codehighlighter1_995_1343_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_995_1343_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_995_1343_Closed_Text.style.display='none'; Codehighlighter1_995_1343_Open_Image.style.display='inline'; Codehighlighter1_995_1343_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_995_1343_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_995_1343_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">在这里实现事务性工作<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">发送消息</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insertMessage(sendUserId,&nbsp;toUser,&nbsp;content,&nbsp;sendedStatus);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">在接收信息表中插入记录</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;receiveCount&nbsp;</span><span style="color: #000000">+=</span><span style="color: #000000">&nbsp;insertReceiveMessage(userids[</span><span style="color: #000000">0</span><span style="color: #000000">],&nbsp;sendUserId,&nbsp;content,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">0</span><span style="color: #000000">"</span><span style="color: #000000">);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">&nbsp;没有错误,提交事务</span><span style="color: #008000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;scope.Complete();<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img id="Codehighlighter1_1382_1466_Open_Image" onclick="this.style.display='none'; Codehighlighter1_1382_1466_Open_Text.style.display='none'; Codehighlighter1_1382_1466_Closed_Image.style.display='inline'; Codehighlighter1_1382_1466_Closed_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" /><img id="Codehighlighter1_1382_1466_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_1382_1466_Closed_Text.style.display='none'; Codehighlighter1_1382_1466_Open_Image.style.display='inline'; Codehighlighter1_1382_1466_Open_Text.style.display='inline';" alt="" src="http://www.blogjava.net/images/OutliningIndicators/ContractedSubBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">catch</span><span style="color: #000000">&nbsp;(Exception&nbsp;ex)&nbsp;</span><span id="Codehighlighter1_1382_1466_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img alt="" src="http://www.blogjava.net/Images/dot.gif" /></span><span id="Codehighlighter1_1382_1466_Open_Text"><span style="color: #000000">{<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">throw</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;Exception(</span><span style="color: #000000">"</span><span style="color: #000000">发送信息异常,原因:</span><span style="color: #000000">"</span><span style="color: #000000">+</span><span style="color: #000000">ex.Message);<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}finally{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //释放资源<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; scope.Dispose();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span><span style="color: #000000"><img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;receiveCount;<br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top" /></span></div>
<p><br />
&nbsp;3、对MSDTC组件设置:<br />
&nbsp;步骤:<br />
&nbsp; 在控制面板---&gt;管理工具---&gt;服务 中，开启Distributed Transaction Coordinator 服务。<br />
&nbsp;a.控制面板-&gt;管理工具-&gt;组件服务-&gt;计算机-&gt;我的电脑-&gt;右键-&gt;属性<br />
&nbsp;b.选择MSDTC页, 确认"使用本地协调器"<br />
&nbsp;c.点击下方"安全配置"按钮<br />
&nbsp;d.勾选: "允许网络DTC访问","允许远程客户端","允许入站","允许出站","不要求进行身份验证".<br />
&nbsp;e.对于数据库服务器端, 可选择"要求对呼叫方验证"<br />
&nbsp;f.勾选:"启用事务Internet协议（TIP)事务"。<br />
&nbsp;g.在双方防火墙中增加MSDTC.exe例外<br />
&nbsp;&nbsp; 可用命令行: netsh firewall set allowedprogram %windir%\system32\msdtc.exe MSDTC enable</p>
<p>4、重启IIS服务器。</p>
<img src ="http://www.blogjava.net/Martin-Liu-Hai-Shi/aggbug/260286.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Martin-Liu-Hai-Shi/" target="_blank">aisoft</a> 2009-03-17 17:02 <a href="http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/260286.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C#时间日期工具类</title><link>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/259547.html</link><dc:creator>aisoft</dc:creator><author>aisoft</author><pubDate>Fri, 13 Mar 2009 07:33:00 GMT</pubDate><guid>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/259547.html</guid><wfw:comment>http://www.blogjava.net/Martin-Liu-Hai-Shi/comments/259547.html</wfw:comment><comments>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/259547.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Martin-Liu-Hai-Shi/comments/commentRss/259547.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Martin-Liu-Hai-Shi/services/trackbacks/259547.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: &nbsp;&nbsp;1using&nbsp;System;&nbsp;&nbsp;2using&nbsp;System.Collections.Generic;&nbsp;&nbsp;3using&nbsp;System.Text;&nbsp;&nbsp;4&nbsp;&nbsp;5namespace&nbsp;BLL&nbsp;&nbsp;6{&nbsp;&nbsp;...&nbsp;&nbsp;<a href='http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/259547.html'>阅读全文</a><img src ="http://www.blogjava.net/Martin-Liu-Hai-Shi/aggbug/259547.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Martin-Liu-Hai-Shi/" target="_blank">aisoft</a> 2009-03-13 15:33 <a href="http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/259547.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>asp.net框架中异步调用后台方法进行提交或更新。</title><link>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/247912.html</link><dc:creator>aisoft</dc:creator><author>aisoft</author><pubDate>Tue, 23 Dec 2008 06:55:00 GMT</pubDate><guid>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/247912.html</guid><wfw:comment>http://www.blogjava.net/Martin-Liu-Hai-Shi/comments/247912.html</wfw:comment><comments>http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/247912.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/Martin-Liu-Hai-Shi/comments/commentRss/247912.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/Martin-Liu-Hai-Shi/services/trackbacks/247912.html</trackback:ping><description><![CDATA[<p>在asp.net框架中如何调用AJAX，或者异步调用后台方法进行提交或更新。<br />
近段时间，公司有个项目需要做成象新浪网的股票信息那样，实时进行刷新。经过摸索测试，下面把经验进行分享：<br />
一、在页面的cs文件中，该类一定要实现: System.Web.UI.ICallbackEventHandler接口<br />
即：继承System.Web.UI.Page类，并实现 System.Web.UI.ICallbackEventHandler接口<br />
然后在Page_Load方法内（或DataBind()）中进行注册：如下<br />
//用于回调的</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">string&nbsp;callbackReference&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;ClientScript.GetCallbackEventReference(</span><span style="color: #0000ff">this</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">arg</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">ReceiveCallback</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">context</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />string&nbsp;callbackScript&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;string.Format(</span><span style="color: #000000">"</span><span style="color: #000000">function&nbsp;CallServer(arg,context){{&nbsp;{0}}}</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;callbackReference);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />ClientScript.RegisterClientScriptBlock(</span><span style="color: #0000ff">this</span><span style="color: #000000">.GetType(),&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">CallServer</span><span style="color: #000000">"</span><span style="color: #000000">,&nbsp;callbackScript,&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">);</span></div>
<p>解释：<br />
string callbackReference = ClientScript.GetCallbackEventReference(this, "arg", "ReceiveCallback", "context", false);<br />
该代码主要是注册一个回调事件，其中context为页面的div的ID值，主要是回调返回后需要重写页面的div的innerHtml（即控件）。<br />
string callbackScript = string.Format("function CallServer(arg,context){{ {0}}}", callbackReference);<br />
该代码主要是通过回调事件订制一个js方法，供页面调用（可能相当于委托）</p>
<p>二、重写ICallbackEventHandler接口的相应方法。</p>
<p>&nbsp;</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #000000">#region&nbsp;javascript异步调用，重写rptList<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;RaiseCallbackEvent(string&nbsp;eventArgument)<br />
<img id="Codehighlighter1_94_158_Open_Image" onclick="this.style.display='none'; Codehighlighter1_94_158_Open_Text.style.display='none'; Codehighlighter1_94_158_Closed_Image.style.display='inline'; Codehighlighter1_94_158_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_94_158_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_94_158_Closed_Text.style.display='none'; Codehighlighter1_94_158_Open_Image.style.display='inline'; Codehighlighter1_94_158_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_94_158_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_94_158_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">自己写的数据绑定方法，取数据库的数据，重新绑定到Repeater控件</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;BindData();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;string&nbsp;GetCallbackResult()<br />
<img id="Codehighlighter1_203_288_Open_Image" onclick="this.style.display='none'; Codehighlighter1_203_288_Open_Text.style.display='none'; Codehighlighter1_203_288_Closed_Image.style.display='inline'; Codehighlighter1_203_288_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_203_288_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_203_288_Closed_Text.style.display='none'; Codehighlighter1_203_288_Open_Image.style.display='inline'; Codehighlighter1_203_288_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_203_288_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_203_288_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">返回再次绑定后的Repeater的表现内容</span><span style="color: #008000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" /></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;RenderControl(</span><span style="color: #0000ff">this</span><span style="color: #000000">.rptBidding);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">&nbsp;string&nbsp;RenderControl(Control&nbsp;control)<br />
<img id="Codehighlighter1_345_634_Open_Image" onclick="this.style.display='none'; Codehighlighter1_345_634_Open_Text.style.display='none'; Codehighlighter1_345_634_Closed_Image.style.display='inline'; Codehighlighter1_345_634_Closed_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_345_634_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_345_634_Closed_Text.style.display='none'; Codehighlighter1_345_634_Open_Image.style.display='inline'; Codehighlighter1_345_634_Open_Text.style.display='inline';" src="http://www.blogjava.net/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span id="Codehighlighter1_345_634_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"><img src="http://www.blogjava.net/Images/dot.gif"  alt="" /></span><span id="Codehighlighter1_345_634_Open_Text"><span style="color: #000000">{<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;StringWriter&nbsp;writer1&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;StringWriter(CultureInfo.InvariantCulture);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HtmlTextWriter&nbsp;writer2&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;HtmlTextWriter(writer1);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;control.RenderControl(writer2);<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer2.Flush();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer2.Close();<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;writer1.ToString()&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">@</span><span style="color: #000000">"</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">+</span><span style="color: #000000">&nbsp;newLogId;<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="color: #000000"><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;#endregion<br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.blogjava.net/images/OutliningIndicators/None.gif" align="top"  alt="" /></span></div>
<p><br />
&nbsp;三、页面表现时，需要定义一个div，里面任何内容都可以。<br />
&nbsp;&nbsp; &lt;div id="context"&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&lt;asp:Repeater ID="rptBidding" runat="server"&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;HeaderTemplate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;页面表现内容&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;/HeaderTemplate&gt;<br />
&nbsp;&nbsp;&nbsp; &lt;ItemTemplate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;页面表现内容&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ItemTemplate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;AlternatingItemTemplate&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;div&gt;页面表现内容&lt;/div&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; &lt;/AlternatingItemTemplate&gt;<br />
&nbsp;&lt;/asp:Repeater&gt;<br />
&nbsp;&nbsp; &lt;/div&gt;<br />
在js中增加如下js方法，以供后台调用。<br />
&nbsp;&nbsp; function turnPage(pageIndex){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CallServer(pageIndex,'content');<br />
&nbsp;&nbsp; }<br />
&nbsp;&nbsp; //5秒刷新下,即取数据库的值。重新绑定数据<br />
&nbsp;&nbsp; setInterval(turnPage(1), 5000);<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; function ReceiveCallback(arg,context){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var array = new Array();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; array = arg.split('@');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //重新编译div的innerHTML<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var container = document.getElementById('context');<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; container.innerHTML = array[0];<br />
&nbsp;&nbsp; }</p>
结束运行。
<img src ="http://www.blogjava.net/Martin-Liu-Hai-Shi/aggbug/247912.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/Martin-Liu-Hai-Shi/" target="_blank">aisoft</a> 2008-12-23 14:55 <a href="http://www.blogjava.net/Martin-Liu-Hai-Shi/articles/247912.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>