点点细雨的项目日记(三) 三…

简介: 点点细雨的原创博文!供各位在编程之路的同学们参考~本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作!昨天我们做到了数据库的搭建,数据库搭建完成后就是整个项目的搭建,那么首先就是三层架构。
点点细雨的原创博文!供各位在编程之路的同学们参考~
本人博文允许转载,但请在文章显著位置注明转载出处以及原文链接,谢谢合作

昨天我们做到了数据库的搭建,数据库搭建完成后就是整个项目的搭建,那么首先就是三层架构。
三层架构,就是数据访问层、业务逻辑层和表示层三部分,整体穿插一个实体类进行数据的传递。
值得一提的是这次数据访问层的搭建方式,跟原来有很大的不同。

/// <summary>
        /// 根据用户名,密码得到单个管理员
        /// </summary>
        /// <param name="userName">用户名称</param>
        /// <param name="password">用户密码</param>
        /// <returns>管理员对象</returns>
        public  users GetUsersByNameAndPwd(string username, string userspassword)
        {
            users users = new users();
            using (SqlConnection connection = new SqlConnection(connString))
            {

                SqlCommand command = new SqlCommand("select * from users where users_name=@username and users_pwd=@userpassword", connection);
                command.Parameters.Add("@username", SqlDbType.VarChar, 50);
                command.Parameters.Add("@userpassword", SqlDbType.VarChar, 256);
                command.Parameters[0].Value = username;
                command.Parameters[1].Value = userspassword;
                connection.Open();
                using (SqlDataReader usersReader = command.ExecuteReader())
                {
                    if (usersReader.Read())
                    {
                        users = FillData(usersReader);
                        return users;
                    }
                    else
                    {
                        return null;
                    }
                }
            }
        }
        /// <summary>
        /// 填充数据实体
        /// </summary>
        /// <param name="usersReader">数据读取器</param>
        /// <returns>填充数据后的数据实体</returns>
        private static users FillData(IDataReader usersReader)
        {
            users users = new users();
            users.Users_id = usersReader.GetInt32(usersReader.GetOrdinal("Users_id"));
            users.Users_name = usersReader.GetString(usersReader.GetOrdinal("Users_name"));
            users.Users_pwd = usersReader.GetString(usersReader.GetOrdinal("Users_pwd"));
            users.Users_power = usersReader.GetBoolean(usersReader.GetOrdinal("Users_power"));
            return users;
        }
这次采用了每个表对应的DAL里都添加一个填充实体数据的函数,这样能增加代码的重用性。上面那种注释方式也会在业务逻辑层引用的时候给出文字的提示。
目录
相关文章
|
安全 数据安全/隐私保护
Crack Slide | X 科网站的登录滑块逆向分析(读者投稿)
Crack Slide | X 科网站的登录滑块逆向分析(读者投稿)
236 0
Crack Slide | X 科网站的登录滑块逆向分析(读者投稿)
|
编译器 Go C语言
自制操作系统日记(8):变量显示
上篇中,我们显示了静态的字符串在桌面上,本篇进一步探索,能将定义的整型变量的值显示在桌面上
|
Python
自制操作系统日记(7):字符串显示
上篇中我们在屏幕上画出了界面的大致轮廓,系统有了点模样,本篇继续跟着书籍,让程序中的字符串显示在屏幕上
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十四题-定位-fixed
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十四题-定位-fixed
112 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十四题-定位-fixed
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十八题-时间格式化输出
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十八题-时间格式化输出
82 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百一十八题-时间格式化输出
|
前端开发 JavaScript
#yyds干货盘点# 前端歌谣的刷题之路-第四十三题-输出日期
#yyds干货盘点# 前端歌谣的刷题之路-第四十三题-输出日期
84 0
#yyds干货盘点# 前端歌谣的刷题之路-第四十三题-输出日期
|
前端开发
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十九题-flex-order
#yyds干货盘点# 前端歌谣的刷题之路-第一百三十九题-flex-order
77 0
|
存储 Java Android开发
Window十二问(快扶我起来,我还能问)
关于Window,你了解多少呢?看看下面这些问题你都能答上来吗。
178 0
Window十二问(快扶我起来,我还能问)
|
前端开发 JavaScript 关系型数据库
Nancy简单实战之NancyMusicStore(二):打造首页
原文:Nancy简单实战之NancyMusicStore(二):打造首页 前言 继上一篇搭建好项目之后,我们在这一篇中将把我们NancyMusicStore的首页打造出来。 布局 开始首页之前,我们要先为我们的整个应用添加一个通用的布局页面,WebForm中母版页的概念。
977 0