C#事务处理(Execute Transaction)实例解析
程序员文章站
2023-12-18 11:28:10
本文所述为c#事务处理(execute transaction)的一个实例,包含了创建sqltransaction 对象并用sqlconnection对象的begintra...
本文所述为c#事务处理(execute transaction)的一个实例,包含了创建sqltransaction 对象并用sqlconnection对象的begintransaction()方法开始事务,创建保存sql语句,将sqlcommand对象的commandtext属性设置为第一个insert语句,第一个insert语句在customers表中增加一行,提交事务,使insert语句增加的两行在数据库中保存起来。
具体的实例代码如下:
using system; using system.data; using system.data.sqlclient; namespace executetransaction { /// <summary> /// executetransaction 的摘要说明。 /// </summary> public class executetransaction { public static void main() { sqlconnection mysqlconnection = new sqlconnection( "server=localhost;database=northwind;uid=sa;pwd=sa" ); mysqlconnection.open(); // 创建sqltransaction 对象并用sqlconnection对象的 // begintransaction()方法开始事务 sqltransaction mysqltransaction = mysqlconnection.begintransaction(); // 创建保存sql语句 sqlcommand mysqlcommand = mysqlconnection.createcommand(); // 将transaction属性设置为上面所生成的sqltransaction对象 mysqlcommand.transaction = mysqltransaction; // 将sqlcommand对象的commandtext属性设置为第一个insert语句, // 第一个insert语句在customers表中增加一行 mysqlcommand.commandtext = "insert into customers (" + " customerid, companyname" + ") values (" + " 'micro', 'microsoft corporation'" + ")"; // 执行第一个insert语句 console.writeline("running first insert statement"); mysqlcommand.executenonquery(); // 将sqlcommand对象的commandtext属性设置为第二个insert语句, // 第二个insert语句在orders表中增加一行 mysqlcommand.commandtext = "insert into orders (" + " customerid" + ") values (" + " 'micro'" + ")"; // 执行第二个insert语句 console.writeline("running second insert statement"); mysqlcommand.executenonquery(); // 提交事务,使insert语句增加的两行在数据库中保存起来 console.writeline("committing transaction"); mysqltransaction.commit(); mysqlconnection.close(); } } }