EF调用存储过程 登录、添加、删除

本文介绍了一个使用SQL存储过程实现的登录验证方法,以及如何通过存储过程进行学生信息的添加和删除操作。文章详细展示了如何在.NET环境中利用Entity Framework调用这些存储过程,包括登录验证、添加学生信息和删除学生信息的具体实现。
摘要由CSDN通过智能技术生成

--登录存储过程
create proc [dbo].[dengru]
@zhanghoa nvarchar(10),
@mima nvarchar(10),
@num int output--返回参数的作用是为了给后台返回结果
as
if exists(select * from Students a where a.StudentName=@zhanghoa and a.Password=@mima)
begin
set @num=1--代表登录成功
end
else
begin
set @num=0--登录失败
end


EF调用存储过程的方式:
        /// <summary>
        /// 登录存储过程
        /// </summary>
        /// <param name="name"></param>
        /// <param name="pwd"></param>
        /// <returns></returns>
        public int Login(string name,string pwd)
        {
            DataContext contexct = new DataContext();
            var _name = new SqlParameter("@zhanghoa", name);//用户名
            var _pwd = new SqlParameter("@mima", pwd);//密码
            var _out = new SqlParameter("@num", SqlDbType.Int);//返回值,用于判断用户是否存在

            _out.Direction = ParameterDirection.Output;//定义该参数为返回参数

            contexct.Database.ExecuteSqlCommand("login @zhanghoa,@mima,@num out", _name, _pwd,_out);
            int result = (int)_out.Value;//获取返回参数的值
            return result;
        }

        /// <summary>
        /// 添加学生信息
        /// </summary>
        /// <returns></returns>
        public int AddStudent(Student stu)
        {
            try
            {
                
                DataContext context = new DataContext();
                var st_name = new SqlParameter("@name", stu.StudentName);
                var st_password = new SqlParameter("@pasword", stu.PassWord);
                var st_sex = new SqlParameter("@sex", stu.Sex);
                var st_deptid = new SqlParameter("@deptid", stu.DeptId);
                var st_state = new SqlParameter("@state", stu.State);
                return context.Database.ExecuteSqlCommand("add_stu @name,@sex,@pasword,@deptid,@state", st_name, st_sex, st_password, st_deptid,st_state);
            }
            finally
            {
                GC.Collect();
            }
        }

        /// <summary>
        /// 删除存储过程
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public int DelStu(int id)
        {
           
            DataContext context = new DataContext();
            var stu = context.stu.Find(id);//根据编号查找学生信息
            if(stu.State==1)
            {
                return 2;//用户不能删除,当前的状态是正常
            }
            else
            {
                try
                {
                    var p_name = new SqlParameter("@id", id);

                    return context.Database.ExecuteSqlCommand("del_stu @id", p_name);//执行删除的存储过程
                }
                finally
                {
                    GC.Collect();
                }
  
            }
     
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值