<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>家有小虎 &#187; C#</title>
	<atom:link href="http://jiahu.net/tag/c/feed" rel="self" type="application/rss+xml" />
	<link>http://jiahu.net</link>
	<description>我在路上, 你不在身旁. 想你的时候, 温暖依然.</description>
	<lastBuildDate>Thu, 02 Sep 2010 01:38:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Transaction for OracleConnection in .Net</title>
		<link>http://jiahu.net/transactionscope-for-oracle-in-net.htm</link>
		<comments>http://jiahu.net/transactionscope-for-oracle-in-net.htm#comments</comments>
		<pubDate>Thu, 03 Jun 2010 22:58:13 +0000</pubDate>
		<dc:creator>o2ho</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://jiahu.net/?p=1480</guid>
		<description><![CDATA[1. 单个数据库连接 可以直接使用OracleTransaction对象做事务处理 using&#40;var transaction = connection.BeginTransaction&#40;&#41;&#41; &#123; .....在这个作用域上的数据库操作，必须基于这个transaction using&#40;var command = new OracleCommand&#40;commandText, connection&#41; &#123; Transaction = transaction &#125;&#41; &#123; ... &#125; ... transaction.Commit&#40;&#41;; //transaction.Rollback(); &#125; 2. 多个数据库连接 可以使用TransactionScope对象来维护多个数据库连接中的事务处理 var options = new TransactionOptions &#123; IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted, Timeout = new TimeSpan&#40;0, 2, 0&#41; &#125;; &#160; using &#40;var transaction = new TransactionScope&#40;TransactionScopeOption.Required, options&#41;&#41; &#123; [...]]]></description>
			<content:encoded><![CDATA[<p>1. 单个数据库连接</p>
<p>可以直接使用OracleTransaction对象做事务处理</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span><span style="color: #000000;">&#40;</span>var transaction <span style="color: #008000;">=</span> connection.<span style="color: #0000FF;">BeginTransaction</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
.....在这个作用域上的数据库操作，必须基于这个transaction
<span style="color: #0600FF;">using</span><span style="color: #000000;">&#40;</span>var command <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> OracleCommand<span style="color: #000000;">&#40;</span>commandText, connection<span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#123;</span> Transaction <span style="color: #008000;">=</span> transaction <span style="color: #000000;">&#125;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
...
<span style="color: #000000;">&#125;</span>
...
<span style="color: #0000FF;">transaction</span>.<span style="color: #0000FF;">Commit</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span> <span style="color: #008080; font-style: italic;">//transaction.Rollback();</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>2. 多个数据库连接</p>
<p>可以使用TransactionScope对象来维护多个数据库连接中的事务处理</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">var options <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TransactionOptions <span style="color: #000000;">&#123;</span> IsolationLevel <span style="color: #008000;">=</span> <span style="color: #000000;">System</span>.<span style="color: #0000FF;">Transactions</span>.<span style="color: #0000FF;">IsolationLevel</span>.<span style="color: #0000FF;">ReadCommitted</span>, Timeout <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TimeSpan<span style="color: #000000;">&#40;</span><span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">2</span>, <span style="color: #FF0000;">0</span><span style="color: #000000;">&#41;</span> <span style="color: #000000;">&#125;</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">using</span> <span style="color: #000000;">&#40;</span>var transaction <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> TransactionScope<span style="color: #000000;">&#40;</span>TransactionScopeOption.<span style="color: #0000FF;">Required</span>, options<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
.....在这个作用域里面的数据库操作，不需要传递transaction对象
<span style="color: #0600FF;">using</span><span style="color: #000000;">&#40;</span>var connection1 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> OracleConnection<span style="color: #000000;">&#40;</span>connectionString1<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
...
<span style="color: #000000;">&#125;</span>
&nbsp;
<span style="color: #0600FF;">using</span><span style="color: #000000;">&#40;</span>var connection2 <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> OracleConnection<span style="color: #000000;">&#40;</span>connectionString2<span style="color: #000000;">&#41;</span><span style="color: #000000;">&#41;</span>
<span style="color: #000000;">&#123;</span>
...
<span style="color: #000000;">&#125;</span>
&nbsp;
transaction.<span style="color: #0000FF;">Complete</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span><span style="color: #008000;">;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>注1: 使用TransactionScope对象前，需要添加引用System.Transaction</p>
<p>注2: 对于多个Oracle连接来说，使用TransactionScope对象前，需要安装Oracle Services For MTS (Microsoft Transaction Server)。下载地址：<a href="http://goo.gl/XrKn" target="_blank">http://goo.gl/XrKn</a></p>
<div class="shr-publisher-1480"></div>]]></content:encoded>
			<wfw:commentRss>http://jiahu.net/transactionscope-for-oracle-in-net.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Convert integer to Enum instance</title>
		<link>http://jiahu.net/convert-integer-to-enum-instance.htm</link>
		<comments>http://jiahu.net/convert-integer-to-enum-instance.htm#comments</comments>
		<pubDate>Mon, 27 Oct 2008 04:19:03 +0000</pubDate>
		<dc:creator>o2ho</dc:creator>
				<category><![CDATA[工作]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[.Net]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[代码]]></category>

		<guid isPermaLink="false">http://cngator.net/?p=774</guid>
		<description><![CDATA[public void EnumInstanceFromInt() { // The .NET Framework contains an Enum called DayOfWeek. // Let&#8217;s generate some Enum instances from int values. // Usually you wouldn&#8217;t cast an instance of an existing Enum to an int // in order to create an Enum instance. :-) You would have the actual // integer value, perhaps a [...]]]></description>
			<content:encoded><![CDATA[<p>public void EnumInstanceFromInt()<br />
{<br />
// The .NET Framework contains an Enum called DayOfWeek.<br />
// Let&#8217;s generate some Enum instances from int values.</p>
<p>// Usually you wouldn&#8217;t cast an instance of an existing Enum to an int<br />
// in order to create an Enum instance.  :-)  You would have the actual<br />
// integer value, perhaps a value from a database where the int value of<br />
// the enum was stored.</p>
<p>DayOfWeek wednesday =<br />
(DayOfWeek)Enum.ToObject(typeof(DayOfWeek), (int)DayOfWeek.Wednesday);<br />
DayOfWeek sunday =<br />
(DayOfWeek)Enum.ToObject(typeof(DayOfWeek), (int)DayOfWeek.Sunday);<br />
DayOfWeek tgif =<br />
(DayOfWeek)Enum.ToObject(typeof(DayOfWeek), (int)DayOfWeek.Friday);</p>
<p>lblOutput.Text = wednesday.ToString()<br />
+ &#8220;.  Int value = &#8221; + ((int)wednesday).ToString() + &#8220;\n&#8221;;<br />
lblOutput.Text += sunday.ToString()<br />
+ &#8220;.  Int value = &#8221; + ((int)sunday).ToString() + &#8220;\n&#8221;;<br />
lblOutput.Text += tgif.ToString()<br />
+ &#8220;.  Int value = &#8221; + ((int)tgif).ToString() + &#8220;\n&#8221;;<br />
}</p>
<p>Result:</p>
<p>Wednesday. Int value = 3<br />
Sunday. Int value = 0<br />
Friday. Int value = 5</p>
<p>Link: <a href="http://www.cambiaresearch.com/c4/52a7e5fe-c7fc-49ab-b21d-37e6194687f3/Convert-Integer-To-Enum-Instance-in-csharp.aspx" target="_blank">http://www.cambiaresearch.com/c4/52a7e5fe-c7fc-49ab-b21d-37e6194687f3/Convert-Integer-To-Enum-Instance-in-csharp.aspx</a></p>
<div class="shr-publisher-774"></div>]]></content:encoded>
			<wfw:commentRss>http://jiahu.net/convert-integer-to-enum-instance.htm/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
