码迷,mamicode.com
首页 > 数据库 > 详细

SqlCeConnectionBeginTransaction 方法

时间:2016-01-19 12:06:28      阅读:197      评论:0      收藏:0      [点我收藏+]

标签:

SqlCeConnectionBeginTransaction 方法

开始数据库事务。

 

命名空间:   System.Data.SqlServerCe
程序集:  System.Data.SqlServerCe(在 System.Data.SqlServerCe.dll 中)
示例

下面的示例创建一个 SqlCeConnection 和一个 SqlCeTransaction,然后阐释如何使用 BeginTransaction Commit 和 Rollback 方法。

Dim conn As New SqlCeConnection("Data Source = MyDatabase.sdf; Password =‘<pwd>‘")
conn.Open()

‘ Start a local transaction
‘
Dim tx As SqlCeTransaction = conn.BeginTransaction()

‘ By default, commands run in auto-commit mode; 
‘
Dim cmd1 As SqlCeCommand = conn.CreateCommand()

‘ You may create multiple commands on the same connection
‘
Dim cmd2 As SqlCeCommand = conn.CreateCommand()

‘ To enlist a command in a transaction, set the Transaction property
‘
cmd1.Transaction = tx

Try
    cmd1.CommandText = "INSERT INTO Shippers ([Company Name]) VALUES (‘Northwind Traders‘)"
    cmd1.ExecuteNonQuery()

    ‘ Auto-commited because cmd2 is not enlisted in a transaction
    ‘
    cmd2.CommandText = "INSERT INTO Employees ([Last Name], [First Name]) VALUES (‘Decker‘, ‘Barbara‘)"
    cmd2.ExecuteNonQuery()

    ‘ This will cause referential constraint violation
    ‘
    cmd1.CommandText = "DELETE FROM Products WHERE [Product ID] = 1"
    cmd1.ExecuteNonQuery()

    ‘ Commit the changes to disk if everything above succeeded
    ‘
    tx.Commit()
Catch
    tx.Rollback()
Finally
    conn.Close()
End Try

SqlCeConnection conn = new SqlCeConnection("Data Source = MyDatabase.sdf; Password =‘<pwd>‘"); 
conn.Open(); 
 
// Start a local transaction 
// 
SqlCeTransaction tx = conn.BeginTransaction(); 
 
// By default, commands run in auto-commit mode;  
// 
SqlCeCommand cmd1 = conn.CreateCommand(); 
 
// You may create multiple commands on the same connection 
// 
SqlCeCommand cmd2 = conn.CreateCommand(); 
 
// To enlist a command in a transaction, set the Transaction property 
// 
cmd1.Transaction = tx; 
 
try 

    cmd1.CommandText = "INSERT INTO Shippers ([Company Name]) VALUES (‘Northwind Traders‘)"; 
    cmd1.ExecuteNonQuery(); 
 
    // Auto-commited because cmd2 is not enlisted in a transaction 
    // 
    cmd2.CommandText = "INSERT INTO Employees ([Last Name], [First Name]) VALUES (‘Decker‘, ‘Barbara‘)"; 
    cmd2.ExecuteNonQuery(); 
 
    // This will cause referential constraint violation 
    // 
    cmd1.CommandText = "DELETE FROM Products WHERE [Product ID] = 1"; 
    cmd1.ExecuteNonQuery(); 
 
    // Commit the changes to disk if everything above succeeded 
    // 
    tx.Commit(); 

catch (Exception) 

    tx.Rollback(); 

finally 

    conn.Close(); 

SqlCeConnectionBeginTransaction 方法

标签:

原文地址:http://www.cnblogs.com/kittyguo/p/5141374.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!