我有一个来自C#的SQL语句,用于将购买信息插入一个表(SQL Server 2005),并将购买商品(多个)插入另一个表中。
我想通过调用BeginTransaction来运行这两个插入语句以进行事务处理。
我注意到可以从SqlConnection对象或SqlCommand对象中执行。我的直觉告诉我应该通过连接对象执行,因为我将为每个插入使用1个命令对象,但它们共享同一个连接。
我是正确的吗?
总的来说,这两者之间有什么区别吗?
我有一个来自C#的SQL语句,用于将购买信息插入一个表(SQL Server 2005),并将购买商品(多个)插入另一个表中。
我想通过调用BeginTransaction来运行这两个插入语句以进行事务处理。
我注意到可以从SqlConnection对象或SqlCommand对象中执行。我的直觉告诉我应该通过连接对象执行,因为我将为每个插入使用1个命令对象,但它们共享同一个连接。
我是正确的吗?
总的来说,这两者之间有什么区别吗?
var tran = db.BeginTransaction();
try {
SqlCommand com = new SqlCommand(...., tran);
// or.
com.Transaction=tran;
// do the work, eg execute SQL
// finally commit the changes
tran.Commit();
}
catch
{
tran.Rollback();
}