C# 最简单的三层架构实例 ——转载自网易博客

本文介绍了一个简单的用户登录系统的实现过程,包括Model类中用户信息的初始化、BLL层的登录验证逻辑、DAL层的数据库交互操作及UI层的登录结果显示。同时提供了存储过程的创建示例。

 代码
        /// <summary>
        /// 初始化登录名称、登录密码(Model类)
        /// </summary>
        private string adminUser = string.Empty; //设置用户名称为空值
        private string adminPwd = string.Empty; //设置用户密码为空值
        public string AdminUser
        {
            get
            {
                return this.adminUser;
            }
            set
            {
                this.adminUser = value;
            }
        }
        public string AdminPwd
        {
            get
            {
                return this.adminPwd;
            }
            set
            {
                this.adminPwd = value;
            }
        }


代码

        /// <summary>
        /// 用户登录(BLL类)
        /// </summary>
        /// <param name="m"></param>
        /// <returns></returns>
        public static int sysLogin(Model m)
        {
            string str = "adminValid"; //存储过程名称
            SqlParameter[] sqlParameter =
                {
                    // 将UI层传递过来的用户名称和密码赋值给存储过程中的变量分别是adminUser和adminPwd(注意大小写)
                    new SqlParameter("adminUser",m.AdminUser),
                    new SqlParameter("adminPwd",m.AdminPwd)
                };
            DAL d = new DAL();
            return Int32.Parse(d.ExecuteScalar(str,sqlParameter));
        }

代码

        /// <summary>
        /// 新建一个SQL登录链接
        /// </summary>
        /// <returns></returns>
        private static SqlConnection con()
        {
            return new SqlConnection("Data Source=localhost;Initial Catalog=数据库名称;Integrated Security=SSPI;");
        }
        /// <summary>
        /// 执行操作(DAL类)
        /// </summary>
        /// <param name="str"></param>
        /// <param name="sql"></param>
        /// <returns></returns>
        public string ExecuteScalar(string str, SqlParameter[] sql)
        {
            SqlConnection con = DAL.con();
            try
            {
                con.Open();
                SqlCommand com = new SqlCommand(str, con);
                com.CommandType = CommandType.StoredProcedure;
                com.Parameters.AddRange(sql);
                return Convert.ToString(com.ExecuteScalar()); //返回受影响的行数(例如影响的行数为1,那么返回数值1到BLL层,然后BLL层将数值1返回到UI层)
            }
            catch (Exception Error)
            {
                throw Error;
            }
            finally
            {
                con.Close();
            }
        }

代码

        //UI 层
        Model m = new Model(); //实例化Model类
        m.AdminUser = this.TextBox1.Text.ToString(); //将文本框1中的值传递给Model类中的AdminUser
        m.AdminPwd = this.TextBox2.Text.ToString(); //将文本框2中的值传递给Model类中的AdminPwd
        if (BLL.sysLogin(m) > 0)
        {
            this.Label1.Text = "登录成功!马上进入管理平台...";
        }
        else
        {
            this.Label1.Text = "用户或密码错误,请重新输入!";
        }

代码

--存储过程 (SQL2005)
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

ALTER PROC [dbo].[adminValid]
@adminUser varchar(20),@adminPwd varchar(120)
AS
SELECT COUNT(*) FROM admin WHERE adminUser = @adminUser AND adminPwd = @adminPwd

转载于:https://www.cnblogs.com/tianshuilv/p/3894612.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值