当前位置:编程学习 > C#/ASP.NET >>

c#编程问题

事务是SQL server中的内容,怎样运用c#语言实现数据库编程,主要运用数据库事务机制,使用SQL语句来定义、提交以及回滚一个事务?
答案:
public void RunOleDbTransaction(string myConnString)
{
OleDbConnection myConnection = new OleDbConnection(myConnString);
myConnection.Open();
OleDbCommand myCommand = myConnection.CreateCommand();
OleDbTransaction myTrans;

// Start a local transaction
myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
// Assign transaction object for a pending local transaction
myCommand.Connection = myConnection;
myCommand.Transaction = myTrans;
try
{
myCommand.CommandText = \"Insert into Region (RegionID, RegionDescription) VALUES (100, \'Description\')\";
myCommand.ExecuteNonQuery();
myCommand.CommandText = \"Insert into Region (RegionID, RegionDescription) VALUES (101, \'Description\')\";
myCommand.ExecuteNonQuery();
myTrans.Commit();
Console.WriteLine(\"Both records are written to database.\");
}
catch(Exception e)
{
try
{
myTrans.Rollback();
}
catch (OleDbException ex)
{
if (myTrans.Connection != null)
{
Console.WriteLine(\"An exception of type \" + ex.GetType() +
\" was encountered while attempting to roll back the transaction.\");
}
}

Console.WriteLine(\"An exception of type \" + e.GetType() +
\" was encountered while inserting the data.\");
Console.WriteLine(\"Neither record was written to database.\");
}
finally
{
myConnection.Close();
}
}

OleDbTransaction.Commit 方法
提交数据库事务。
public virtual void Commit();
OleDbTransaction.Rollback 方法
从挂起状态回滚事务。
public virtual void Rollback();
OleDbConnection.BeginTransaction 方法
开始数据库事务。
public OleDbTransaction BeginTransaction();
以当前的 IsolationLevel 值开始数据库事务。
public OleDbTransaction BeginTransaction(IsolationLevel);
IsolationLevel 枚举?
指定连接的事务锁定行为。 在执行事务时,.NET Framework 数据提供程序使用 IsolationLevel 值。在显式更改之前,IsolationLevel 保持有效,但是可以随时对它进行更改。新值在执行时使用,而不是在分析时使用。如果在事务期间更改,服务器的预期行为是,对其余所有语句应用新的锁定级别。
IsolationLevel成员 ReadCommitted
在正在读取数据时保持共享锁,以避免脏读,但是在事务结束之前可以更改数据,从而导致不可重复的读取或幻像数据。
OleDbConnection.CreateCommand 方法
创建和返回一个与 OleDbConnection 相关联的 OleDbCommand 对象。
public OleDbCommand CreateCommand();
OleDbCommand.Connection 属性
获取或设置 OleDbCommand 的此实例使用的 OleDbConnection。
public OleDbConnection Connection {get; set;}
你在C#里也可以创建事务啊...

上一个:有关C#问题请教
下一个:c#动态数组

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,