悲观观定SQL Server和Oracle
[作者]:菩提树下的杨过 [来源]:互联网 [收录时间]:2007-8-2 22:29:08

/*

author:wuxiuxiang;
Email:imessage@126.com

*/

using System;
悲观观定SQL Server和Oracle(图一)
using System.Data;
悲观观定SQL Server和Oracle(图一)
namespace com.cuc.wu.example
悲观观定SQL Server和Oracle(图二)悲观观定SQL Server和Oracle(图三)
{
悲观观定SQL Server和Oracle(图五)
public class class1
悲观观定SQL Server和Oracle(图六)悲观观定SQL Server和Oracle(图七)
{
悲观观定SQL Server和Oracle(图五) //For SQL Server 需要与Connection相关的一个Transaction的隔离级别为
//Repeatable Read或Serializable,对于Oracle,在Command中使用select for update即可
悲观观定SQL Server和Oracle(图五) public void LockedSQLDataRow()
悲观观定SQL Server和Oracle(图六)悲观观定SQL Server和Oracle(图七)
{
悲观观定SQL Server和Oracle(图五) DataSet ds
= new DataSet();
悲观观定SQL Server和Oracle(图五) SqlConnection sconn
= new SqlConnection("server=localhost;uid=sa;pwd=sa;database=pubs");
悲观观定SQL Server和Oracle(图五) sconn.Open();
悲观观定SQL Server和Oracle(图五) SqlTransaction tx
= new sconn.BeginTransaction(IsolationLevel.Serializable);
悲观观定SQL Server和Oracle(图五)
悲观观定SQL Server和Oracle(图五) SqlCommand cmd
= new SqlCommand("select * from authors",conn,tx);
悲观观定SQL Server和Oracle(图五) SqlDataAdapter da
= new SqlDataAdapter(cmd);
悲观观定SQL Server和Oracle(图五) da.Fill(ds,
"autors");
悲观观定SQL Server和Oracle(图五)
//rows locked here
悲观观定SQL Server和Oracle(图五)

悲观观定SQL Server和Oracle(图五) ds.Tables[
0].Rows[1][2]="Free";
悲观观定SQL Server和Oracle(图五)
悲观观定SQL Server和Oracle(图五) SqlCommandBuilder bld
= new SqlCommandBuilder(da);
悲观观定SQL Server和Oracle(图五) da.Update(ds,
"authors");
悲观观定SQL Server和Oracle(图五) tx.commit();
悲观观定SQL Server和Oracle(图五)
//rows unlocked here
悲观观定SQL Server和Oracle(图五)
da.Dispose();
悲观观定SQL Server和Oracle(图五) conn.Close();
//ÏÔʽÊÍ·Å×ÊÔ´
悲观观定SQL Server和Oracle(图八)
}

悲观观定SQL Server和Oracle(图五)
public void LockedORADataRow()
悲观观定SQL Server和Oracle(图六)悲观观定SQL Server和Oracle(图七)
{
悲观观定SQL Server和Oracle(图五) DataSet ds
= new DataSet();
悲观观定SQL Server和Oracle(图五) OleDbConnection oconn
= new OleDbConnection("provider=msdaora;data source=ocr11;user id=scott;password=tiger");
悲观观定SQL Server和Oracle(图五) conn.Open();
悲观观定SQL Server和Oracle(图五)
悲观观定SQL Server和Oracle(图五) OleDbTransaction tx
= oconn.BeginTransaction();
悲观观定SQL Server和Oracle(图五) OleDbCommand cmd
= new OleDbCommand("select * form emp for update ",conn,tx);
悲观观定SQL Server和Oracle(图五)
悲观观定SQL Server和Oracle(图五) OleDbDataAdapter da
= new OleDbDataAdapter(cmd);
悲观观定SQL Server和Oracle(图五) da.Fill(ds,
"emp");
悲观观定SQL Server和Oracle(图五)
//rows locked here;
悲观观定SQL Server和Oracle(图五)

悲观观定SQL Server和Oracle(图五) ds.Tables[
0].Rows[9][2] = "CLERK";
悲观观定SQL Server和Oracle(图五) OleDbCommandBuilder bld
= new OleDbCommandBuilder(da);
悲观观定SQL Server和Oracle(图五) da.Update(ds,
"emp");
悲观观定SQL Server和Oracle(图五) tx.Commit();
悲观观定SQL Server和Oracle(图五)
//rows unlocked here
悲观观定SQL Server和Oracle(图五)
da.Dispose();
悲观观定SQL Server和Oracle(图五) oconn.Close();
悲观观定SQL Server和Oracle(图八) }

悲观观定SQL Server和Oracle(图八) }
;
悲观观定SQL Server和Oracle(图五)
悲观观定SQL Server和Oracle(图九)}