如果分配給命令的連接位於本地掛起事務中,ExecuteNonQuery 要求命令擁有事務。命令的 Transaction 屬性尚未初始化。


using (var con = new SqlConnection(conString))
{
    if (con.State != ConnectionState.Open)
    {
        con.Open();
    }
    using (SqlTransaction tr = con.BeginTransaction())
    {
        using (SqlCommand cmd = new SqlCommand(sql.ToString(), con))
        {
            cmd.Transaction = tr;//將事務賦值給command就可以了
            var result = cmd.ExecuteNonQuery();
            if (result > 1)
            {
                tr.Commit();
            }
            else
            {
                tr.Rollback();
            }
        }
    }
}

原因是cmd沒有指定事務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM