1、创建事务的结构

SqlConnectionsqlConnection=newSqlConnection();
...初始化连接
//开启事务
SqlTransactionsqlTransaction=sqlConnection.BeginTransaction();
//将事务应用于Command
SqlCommandsqlCommand=newSqlCommand();
sqlCommand.Connection=sqlConnection;
sqlCommand.Transaction=sqlTransaction;
try
{
//利用sqlcommand进行数据操作
...
//成功提交
sqlTransaction.Commit();
}
catch(Exceptionex)
{
//出错回滚
sqlTransaction.Rollback();
}

2、简单例子

{
DataTabledt=newDataTable();
System.Data.SqlClient.SqlConnectioncnn=newSystem.Data.SqlClient.SqlConnection("连接字符串");
System.Data.SqlClient.SqlCommandcm=newSystem.Data.SqlClient.SqlCommand();
cm.Connection=cnn;
cnn.Open();
System.Data.SqlClient.SqlTransactiontrans=cnn.BeginTransaction();
try
{
foreach(DataRowdrindt.Rows)
{
cm.CommandText="update[表]set[数量]=@amountwhereproductID=@productID";
cm.Parameters.Add("@amount",SqlDbType.Int);
cm.Parameters["@amount"].Value=Convert.ToInt32(dr["amount"]);
cm.Parameters.Add("@productID",SqlDbType.VarChar);
cm.Parameters["@productID"].Value=dr["productID"].ToString();
cm.ExecuteNonQuery();
}
trans.Commit();
}
catch
{
trans.Rollback();
}
finally
{
cnn.Close();
trans.Dispose();
cnn.Dispose();
}
}

3、SQlserver中的事务例子

begintransaction
savetransactionA

insertintodemovalues('BB','Bterm')
rollbackTRANSACTIONA

createtabledemo2(namevarchar(10),ageint)
insertintodemo2(name,age)values('lis',1)
rollbacktransaction

insertintodemovalues('BB','Bterm')

commitTRANSACTIONA

commitTRANSACTION

4、注意

1。事务必须在连接打开后BeginTransaction();

2.事务添加到SqlCommand(sqlCommand.Transaction=sqlTransaction;)

3、其他数据库对应做相应调整

4、可以用微软提供的一个dll,很方便.