NET事务 隐式事务
如需运行分布式事务,需启动 T-SQL : CreateTableTranTable ( IdINTIDENTITY(1,1)PRIMARYKEY, PriorityTINYINT-- 最大值 255 ) C# : stringsql1="INSERTINTOTranTableVALUES(1)";// 正常插入 stringsql2="INSERTINTOTranTableVALUES(256)";// 插入异常 ADO
如需运行分布式事务,香港空间,美国服务器,需启动
T-SQL:
Create Table TranTable
(
Id INT IDENTITY(1,1) PRIMARY KEY,
Priority TINYINT--最大值255
)
C#:
string sql1 = "INSERT INTO TranTable VALUES(1)";//正常插入
string sql2 = "INSERT INTO TranTable VALUES(256)";//插入异常
ADO.NET事务
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MySqlServer"].ConnectionString))
{
conn.Open();
using (SqlTransaction tran = conn.BeginTransaction())
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
cmd.Transaction = tran;
try
{
cmd.CommandText = sql1;
cmd.ExecuteNonQuery();
cmd.CommandText = sql2;
cmd.ExecuteNonQuery();
tran.Commit();
Response.Write("Ok");
}
catch (SqlException ex)
{
tran.Rollback();
Response.Write("Error:" + ex.Message);
}
}
}
conn.Close();
}
ADO.NET
分布式隐式事务(TransactionScope)
隐式事务不具有
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MySqlServer"].ConnectionString))
{
using (TransactionScope ts = new TransactionScope())
{
conn.Open();
using (SqlCommand cmd = new SqlCommand())
{
cmd.Connection = conn;
cmd.CommandType = CommandType.Text;
try
{
cmd.CommandText = "insert into TranTable(Priority) values(1)";
cmd.ExecuteNonQuery();
cmd.CommandText = "insert into TranTable(Priority) values(256)";
cmd.ExecuteNonQuery();
ts.Complete();
Response.Write("Ok");
}
catch (SqlException ex)
{
Response.Write("Error:" + ex.Message);
}
}
}
conn.Close();
}
TransactionScope没有和数据库直接关联,那是怎么实现用事务的方式执行语句的呢?
如果我们在连接字符串里面加上
分布式显示事务(CommittableTransaction)

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Lockwaittimeoutceeded;tryrestartingtransaction - Cara menyelesaikan ralat MySQL: transaction wait timeouts Apabila menggunakan pangkalan data MySQL, kadangkala anda mungkin menghadapi ralat biasa: Lockwaittimeoutexceeded;tryrestartingtransaction. Ralat ini biasanya berlaku apabila

Pemprosesan transaksi MySQL: perbezaan antara penyerahan automatik dan penyerahan manual Dalam pangkalan data MySQL, urus niaga ialah satu set penyata SQL sama ada semua pelaksanaan berjaya atau semua pelaksanaan gagal, memastikan ketekalan dan integriti data. Dalam MySQL, urus niaga boleh dibahagikan kepada penyerahan automatik dan penyerahan manual Perbezaannya terletak pada masa penyerahan transaksi dan skop kawalan ke atas transaksi. Berikut akan memperkenalkan perbezaan antara penyerahan automatik dan penyerahan manual secara terperinci, dan memberikan contoh kod khusus untuk digambarkan. 1. Hantar secara automatik dalam MySQL, jika ia tidak dipaparkan

Prinsip dan senario aplikasi urus niaga MySQL Dalam sistem pangkalan data, urus niaga ialah satu set operasi SQL sama ada semua dilaksanakan dengan jayanya atau semuanya gagal dan digulung semula. Sebagai sistem pengurusan pangkalan data hubungan yang biasa digunakan, MySQL menyokong ciri-ciri transaksi dan boleh memastikan bahawa data dalam pangkalan data adalah konsisten, terpencil, tahan lama dan atom. Artikel ini akan bermula dengan prinsip asas transaksi MySQL, memperkenalkan senario aplikasinya, dan menyediakan contoh kod khusus untuk rujukan pembaca. Prinsip transaksi MySQL: My

Transaksi memastikan integriti data pangkalan data, termasuk atomicity, konsistensi, pengasingan dan ketahanan. JDBC menggunakan antara muka Sambungan untuk menyediakan kawalan transaksi (setAutoCommit, commit, rollback). Mekanisme kawalan konkurensi menyelaraskan operasi serentak, menggunakan kunci atau kawalan konkurensi optimis/pesimis untuk mencapai pengasingan transaksi untuk mengelakkan ketidakkonsistenan data.

1. Pengenalan kepada PDO PDO ialah perpustakaan sambungan PHP, yang menyediakan cara berorientasikan objek untuk mengendalikan pangkalan data. PDO menyokong pelbagai pangkalan data, termasuk Mysql, postgresql, oracle, SQLServer, dll. PDO membolehkan pembangun menggunakan API bersatu untuk mengendalikan pangkalan data yang berbeza, yang membolehkan pembangun bertukar dengan mudah antara pangkalan data yang berbeza. 2. PDO menyambung ke pangkalan data Untuk menggunakan PDO untuk menyambung ke pangkalan data, anda perlu mencipta objek PDO terlebih dahulu. Pembina objek PDO menerima tiga parameter: jenis pangkalan data, nama hos, nama pengguna pangkalan data dan kata laluan. Sebagai contoh, kod berikut mencipta objek yang bersambung ke pangkalan data mysql: $dsn="mysq

Analisis penyelesaian kepada masalah pengurusan transaksi yang dihadapi dalam pembangunan teknologi MongoDB Apabila aplikasi moden menjadi semakin kompleks dan besar, keperluan pemprosesan transaksi untuk data juga semakin tinggi dan lebih tinggi. Sebagai pangkalan data NoSQL yang popular, MongoDB mempunyai prestasi dan kebolehskalaan yang sangat baik dalam pengurusan data. Walau bagaimanapun, MongoDB agak lemah dalam ketekalan data dan pengurusan transaksi, menimbulkan cabaran kepada pembangun. Dalam artikel ini, kami akan meneroka isu pengurusan transaksi yang dihadapi dalam pembangunan MongoDB dan mencadangkan beberapa penyelesaian.

Sambungan Objek Data PHP (PDO) menyediakan interaksi yang cekap dan berorientasikan objek dengan pelayan pangkalan data. Keupayaan pertanyaan dan kemas kini lanjutannya membolehkan pembangun melaksanakan operasi pangkalan data yang kompleks, meningkatkan prestasi dan kebolehselenggaraan kod. Artikel ini akan menyelidiki pertanyaan lanjutan dan fungsi kemas kini PDO dan membimbing anda untuk menguasai fungsinya yang berkuasa. Pertanyaan lanjutan: Menggunakan ruang letak dan parameter terikat Ruang letak dan parameter terikat ialah alat penting untuk meningkatkan prestasi pertanyaan dan keselamatan. Pemegang tempat menggunakan tanda soal (?) untuk mewakili parameter yang boleh diganti dalam pertanyaan, manakala parameter bind membolehkan anda menentukan jenis data dan nilai setiap parameter. Dengan menggunakan kaedah ini, anda boleh mengelakkan serangan suntikan SQL dan meningkatkan prestasi kerana enjin pangkalan data boleh mengoptimumkan pertanyaan lebih awal daripada masa. //Gunakan pemegang tempat $stmt=$

Apa itu EJB? EJB ialah spesifikasi Java Platform, Enterprise Edition (JavaEE) yang mentakrifkan satu set komponen untuk membina aplikasi Java kelas perusahaan sebelah pelayan. Komponen EJB merangkumi logik perniagaan dan menyediakan satu set perkhidmatan untuk mengendalikan urus niaga, konkurensi, keselamatan dan kebimbangan peringkat perusahaan yang lain. EJB Architecture Seni bina EJB merangkumi komponen utama berikut: Enterprise Bean: Ini adalah blok binaan asas komponen EJB, yang merangkumi logik perniagaan dan data berkaitan. EnterpriseBeans boleh menjadi stateless (juga dipanggil session beans) atau stateful (juga dipanggil entity beans). Konteks sesi: Konteks sesi menyediakan maklumat tentang interaksi klien semasa, seperti ID sesi dan klien
