SQL事物存储过程实现联级删除

来源:互联网 发布:雷人电视剧知乎 编辑:程序博客网 时间:2024/06/11 16:21
dal层代码
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Transactions;

namespace DAL
{
    public class Class1
    {
        public int shiwu(int id)
        {
            CommittableTransaction ct = new CommittableTransaction();
            int row = 0;
            SqlConnection cn = new SqlConnection(Common.Class1.strcon);
            try
            {
                SqlCommand cmd = new SqlCommand();
                cn.Open();
                cmd.Connection = cn;
                cn.EnlistTransaction(ct);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.CommandText = Common.Class1.proselectclassid;
                cmd.Parameters.Add("@id", SqlDbType.Int, 4).Value = id;
                //cmd.CommandText = "select Stuclass from students where StuID='" + id + "'";
                row = Convert.ToInt32(cmd.ExecuteScalar());
                cmd.Parameters.Clear();
                cmd.CommandText = Common.Class1.procdeletestudent;
                cmd.Parameters.Add("@id1", SqlDbType.Int, 4).Value = id;
                //cmd.CommandText = "delete from students where StuID='" + id + "'";
                cmd.ExecuteNonQuery();
                cmd.Parameters.Clear();
                cmd.CommandText = Common.Class1.procupdateclass;
                cmd.Parameters.Add("@id", SqlDbType.Int, 4).Value = row;
                //cmd.CommandText = "update Class set ClassCount=ClassCount-1 where ClassID='" + row + "'";
                row = cmd.ExecuteNonQuery();
                ct.Commit();
            }
            catch (Exception ex)
            {
                ct.Rollback();
            }
            return row;
        }
    }
}

原创粉丝点击