• winform--权限系统--02--登录(把userId传入主窗体的Tag值)


    以下是学习笔记:

    参考:https://www.bilibili.com/video/BV1LK4y1k7HM?t=2583  感谢朝夕教育

    1,UI的点击登录按钮。

    目的:把userId传入主窗体的Tag值

            /// <summary>
            /// 登录过程 
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void btnLogin_Click(object sender, EventArgs e)
            {
                //1.接收页面输入
                string userName = txtUName.Text.Trim();
                string userPwd = txtUPwd.Text.Trim();
                //2.判断账号 密码  是否为空
                if (string.IsNullOrEmpty(userName))
                {
                    MsgBoxHelper.MsgErrorShow("账号不能为空!");
                    txtUName.Focus();
                    return;
                }
                if (string.IsNullOrEmpty(userPwd))
                {
                    MsgBoxHelper.MsgErrorShow("密码不能为空!");
                    txtUPwd.Focus();
                    return;
                }
                UserInfoModel userInfo = new UserInfoModel()
                {
                    UserName = userName,
                    UserPwd = userPwd
                };
                //3.到数据库里检查存在性   ---成功   否则---失败
                UserDAL userDAL = new UserDAL();
                int userId = userDAL.Login(userInfo);
                if (userId > 0)
                {
                    MsgBoxHelper.MsgBoxShow("登录提示", "登录成功!");
                    //显示到主页面
                    FrmMain fMain = new FrmMain();
                    fMain.Tag = userId;
                    fMain.WindowState = FormWindowState.Maximized;
                    fMain.Show();
                    this.Hide();
                }
                else
                {
                    MsgBoxHelper.MsgErrorShow("账号或密码输入有误!");
                    return;
                }
            }
    

      

    2,DAL的数据访问

            /// <summary>
            /// 登录系统
            /// </summary>
            /// <param name="user"></param>
            /// <returns></returns>
            public int Login(UserInfoModel user)
            {
                string sql = "select UserId from UserInfos where UserName=@UserName and UserPwd=@UserPwd";
                SqlParameter[] paras =
                {
                    new SqlParameter("@UserName",user.UserName),
                    new SqlParameter("@UserPwd",user.UserPwd)
                };
                object oId = DBHelper.ExecuteScalar(sql, 1, paras);
                if (oId != null && oId.ToString() != "")
                {
                    return oId.GetInt();
                }
                else
                    return 0;
            }
    

      

    3,数据访问类

            /// <summary>
            /// 执行sql查询,返回第一行第一列的值
            /// </summary>
            /// <param name="sql">sql语句或存储过程</param>
            /// <param name="cmdType">执行的脚本类型 1:sql语句  2:存储过程</param>
            /// <param name="parameters">参数列表</param>
            /// <returns></returns>
            public static object ExecuteScalar(string sql,int cmdType, params SqlParameter[] parameters)
            {
                //params 只能写在一维数组之前,且只能标识参数列表中的最后一个参数
                //select @@Identity 返回上一次插入记录时自动产生的ID
                object result = null;//返回结果
                using (SqlConnection conn = new SqlConnection(connStr))
                {
                    //执行脚本的对象cmd
                    SqlCommand cmd = BuilderCommand(conn, sql, cmdType, null, parameters);
                    result = cmd.ExecuteScalar();//执行T-SQL并返回第一行第一列的值
                    cmd.Parameters.Clear();
                    if (result == null || result == DBNull.Value)
                    {
                        return null;
                    }
                    else
                    {
                        return result;
                    }
                }            
            }
    

      

  • 相关阅读:
    CSS边框
    各大网站注册的用处(个人看法)
    20121011 外边距
    20120921碎碎念
    20121011 CSS一
    20120919碎碎念
    CSS 文本装饰属性
    外边距合并
    EverBox开发笔记1
    “Core Data”中的“dynamic implementation”
  • 原文地址:https://www.cnblogs.com/baozi789654/p/14394327.html
Copyright © 2020-2023  润新知