資料庫併發控制幾隻——事務
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
/*事務是一組被當作一個單元的操作,它們在執行時要麼全部成功,要麼全部失敗。
例如轉帳操作
事務的兩個層次
資料庫級的事務
ADO.NET事務
如果在某個操作中需要對資料庫進行多次更新,則必須使用事務。
SqlTransaction myTransaction
=myConnection.BeginTransaction();
try
{ ...
myCommand = new OleDbCommand(cmdstr, myConnection,myTransaction);
...
myTransaction.Commit();
}
catch (Exception es)
{
myTransaction.Rollback();
}
*/
namespace Transaction
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
String connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionString"];
SqlConnection myconn = new SqlConnection(connectionString);
try
{
myconn.Open();
SqlTransaction myTransaction = myconn.BeginTransaction();//新建一個事務
try
{
string cmdstr = "update Account set money=money-100 where Id='1'";
SqlCommand mycmd = new SqlCommand(cmdstr,myconn,myTransaction);
mycmd.ExecuteNonQuery();
throw new Exception();//丟擲異常,會直接被catch捕獲,處理
string cmdstr2="update Account set money=money+100 where Id='2'";
SqlCommand mycmd1 = new SqlCommand(cmdstr2, myconn, myTransaction);
mycmd1.ExecuteNonQuery();
myTransaction.Commit();//只有執行這句後資料庫裡面的資料才有可能會改變
}
catch(Exception ee)
{
myTransaction.Rollback();//進行回滾
MessageBox.Show("轉賬失敗,正在回滾!");
}
myconn.Close();
}
catch (Exception ex)
{
MessageBox.Show("資料庫連線失敗!");
}
}
}
}
相關文章
- 資料庫事務和MVCC多版本併發控制資料庫MVC
- 關係型資料庫中的事務管理詳解:併發控制與事務日誌資料庫
- 【資料庫】併發控制資料庫
- pgsql事務與併發控制SQL
- 資料庫事務併發問題----各種事務隔離下的情況資料庫
- 關於資料庫事務併發的理解和處理資料庫
- 資料庫事務併發產生的問題以及事務的隔離級別資料庫
- HBase 事務和併發控制機制原理
- 如何知道資料庫建立以來併發事務的最大數量資料庫
- 深入理解 MySQL—鎖、事務與併發控制MySql
- 深入理解Mysql——鎖、事務與併發控制MySql
- 資料庫事務 ACID屬性、資料庫併發問題和四種隔離級別資料庫
- DB2併發控制-事務隔離級別DB2
- 資料庫事務整理資料庫
- MySQL資料庫學習筆記02(事務控制,資料查詢)MySql資料庫筆記
- 用【庫存】看懂雲開發資料庫事務資料庫
- 資料庫系列:InnoDB下實現高併發控制資料庫
- spring學習筆記(20)資料庫事務併發與鎖詳解Spring筆記資料庫
- 資料庫事務與 MySQL 事務總結資料庫MySql
- 深入解析 PostgreSQL 系列之併發控制與事務機制SQL
- 大家如何解決長事務併發控制的問題?
- 資料庫映象和跨資料庫事務資料庫
- MySQL事務與併發MySql
- 淺談資料庫事務資料庫
- 說說資料庫事務資料庫
- 資料庫事務的特徵資料庫特徵
- 資料庫事務概論資料庫
- 資料庫事務 ACID資料庫
- 資料庫事務隔離資料庫
- 資料複製的併發控制
- 資料庫事務以及事務的四個特性資料庫
- 資料庫開發(22)高階事務處理資料庫
- 資料庫事務與事務的隔離級別資料庫
- 分散式事務之資料庫事務與JDBC事務實現(一)分散式資料庫JDBC
- Laravel 開啟資料庫事務Laravel資料庫
- 資料庫事務入門指南資料庫
- MySQL資料庫本地事務原理MySql資料庫
- 資料庫主要物件及事務資料庫物件