SqlTransaction 用与不用的差别~~~疑惑
try
{
sqlcon = new SqlConnection(sqlConnection);
sqlcon.Open();
tran = sqlcon.BeginTransaction();
SqlCommand sqlcom = new SqlCommand(StrExecute,sqlcon);
sqlcom.Transaction = tran;
sqlcom.ExecuteNonQuery();
tran.Commit();
}
catch
{
tran.Rollback();
}
finally
{
sqlcon.Close();
}
与
sqlcon = new SqlConnection(sqlConnection);
sqlcon.Open();
SqlCommand sqlcom = new SqlCommand(StrExecute,sqlcon);
sqlcom.ExecuteNonQuery();
sqlcon.Close();
为什么当我传入"BACKUP DATABASE WCRM TO DISK='" + sv.FileName.ToString() + "'"
时第一条语句不能完成这个工作,而第二条可以。
按理说这条语句绝对是没问题的,在第一条执行的时候绝对不会出错。
是不是晚还有哪些细节不够注意,所以才会不能执行
------解决方案--------------------仔细看MSDN
http://msdn.microsoft.com/zh-cn/library/ms186865.aspx
在备注中明确说明
不允许在显式或隐式事务中使用 BACKUP 语句。
------解决方案--------------------不知道帮顶,也许backup本身不需要事务. 因为它不是破坏性操作,没有什么可以rollback的.