步步為營-50-事務
阿新 • • 發佈:2017-05-07
str reading ram 字符串 commit lin style tran sed
說明:比較常用
1 事務的四大特性:
1.1 原子性atomicity 一個事務中包含的多個SQL語句,要麽同時成功,要麽同時失敗.
1.2 一致性consistency 事務必須使數據庫從從一個一致性狀態變成另外一個一致性狀態.(銀行轉賬)
1.3 隔離性 isolation 各個事務執行互不幹擾(鎖)
1.4 持久性 durability 對數據庫中數據的改變是永久性的.
2 事務的使用
2.1 在SQLServer中
select * from UserInfo --01 事務 --01-01 開啟事務(try---catch)捕獲異常 BEGIN try begin transaction Update UserInfoView Codeset StuName = N‘逍遙小天狼‘ where EmpId = 10 Update UserInfo set StuAge = N‘年齡‘ where EmpId = 11 --01-02 提交事務 commit transaction END try BEGIN catch --01-03回滾事務 rollback tran; END catch
2.2 在C#中
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TransactionDemo
{
class Program
{
static void Main(string[] args)
{
#region 01事務
//01 連接字符串
string connstr = "Data Source=127.0.0.1;uid=sa;pwd=sa;Initial Catalog=DemoDB;";
using (SqlConnection conn = new SqlConnection(connstr))
{
using (SqlCommand cmd = conn.CreateCommand())
{
conn.Open();
//02-01創建事務
SqlTransaction tran = conn.BeginTransaction();
//02-02 把事務給cmd的事務屬性
cmd.Transaction = tran;
try
{
cmd.CommandText = @"Update UserInfo set StuName = N‘逍遙小天狼‘ where EmpId = 10
Update UserInfo set StuAge = 111 where EmpId = 11";
cmd.ExecuteNonQuery();
//事務提交
tran.Commit();
}
catch (Exception)
{
tran.Rollback();
}
}
Console.Read();
#endregion
}
}
}
}
View Code步步為營-50-事務