【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)

开发项目三层架构:界面层、业务逻辑层、数据访问层

今天学习一下数据访问层,分为实体类和数据访问类

所有的类放在App_Code这个文件夹下边。养成一个好的习惯。

一、实体类

数据库中的表映射为一个类,类名与表名一致。表中的每一列,都为该类下的成员变量和属性也就是最简单的封装

把数据库中的表名变为类的类名。

把数据库中的每一个列,变为实体类中的成员变量和属性

列名与属性名一致。成员变量名:在列名前边加上下划线。因为在外部访问只能访问到属性,为了看起来一致。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1.App_Code
{
    public class Users
    {
        private int _Ids;

        public int Ids
        {
            get { return _Ids; }
            set { _Ids = value; }
        }
        private string _UserName;

        public string UserName
        {
            get { return _UserName; }
            set { _UserName = value; }
        }
        private string _PassWord;

        public string PassWord
        {
            get { return _PassWord; }
            set { _PassWord = value; }
        }
        private string _NickName;

        public string NickName
        {
            get { return _NickName; }
            set { _NickName = value; }
        }
        private bool _Sex;

        public bool Sex
        {
            get { return _Sex; }
            set { _Sex = value; }
        }
        private DateTime _Birthday;

        public DateTime Birthday
        {
            get { return _Birthday; }
            set { _Birthday = value; }
        }
        private string _Nation;

        public string Nation
        {
            get { return _Nation; }
            set { _Nation = value; }
        }
    }
}

 

二、数据访问类

将某个表的数据库操作写成一个方法,放到该类中,共外部调用。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace ConsoleApplication2.App_Code
{
    public class UsersData
    {
        SqlConnection conn = null;
        SqlCommand cmd = null;

        public UsersData()
        {
            conn = new SqlConnection("server=.;database=Data0216;user=sa;pwd=123");
            cmd = conn.CreateCommand();
        }

        public List<Users> SelectAll()
        {
            List<Users> list = new List<Users>();

            cmd.CommandText = "select *from Users";
            conn.Open();
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                Users u = new Users();
                u.Ids = Convert.ToInt32(dr["ids"]);
                u.UserName = dr["UserName"].ToString();
                u.PassWord = dr["PassWord"].ToString();
                u.NickName = dr["NickName"].ToString();
                u.Sex = Convert.ToBoolean(dr["Sex"]);
                u.Birthday = Convert.ToDateTime(dr["Birthday"]);
                u.Nation = dr["Nation"].ToString();

                list.Add(u);
            }
            conn.Close();
            return list;
        }

        public void Insert(Users u)
        {
            cmd.CommandText = "insert into Users values(@username,@password,@nickname,@sex,@birthday,@nation)";
            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@username", u.UserName);
            cmd.Parameters.AddWithValue("@password", u.PassWord);
            cmd.Parameters.AddWithValue("@nickname", u.NickName);
            cmd.Parameters.AddWithValue("@sex", u.Sex);
            cmd.Parameters.AddWithValue("@birthday", u.Birthday);
            cmd.Parameters.AddWithValue("@nation", u.Nation);

            conn.Open();
            int a= cmd.ExecuteNonQuery();
            if (a > 0) Console.WriteLine("添加数据成功");
            else Console.WriteLine("添加数据失败");
            conn.Close();
        }

    }
}
时间: 2024-10-24 05:41:26

【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)的相关文章

【基础】图论基础 2017/04/20

用临接链表表示一张图, 可以给图加边, 可以bfs 1 #include <iostream> 2 #include <list> 3 #include <vector> 4 #include <queue> 5 6 using namespace std; 7 8 void createGraph(const int& N) { 9 return; 10 } 11 12 void addEdge(const int fromNode, const

2017/04/20学习笔记

man man 查看帮助文档echo $PATHreboot 重启poweroff 关机 vim --vimvim是从vi发展过来的一款文本编辑器vim的三种工作模式命令模式--打开vim之后,默认模式编辑模式--需要输液一些命令,切换到编辑模式末行模式--在末行模式下可以输入一些命令 :号 aiosAIOS w保存光标移动HJKL行首:0行尾:$文件开始:gg结束:G行跳转: 300G x:删除光标所在字符u: 撤销X:删除光标前字符dw:删除单词d0:删除光标前d$:删除光标后 Ddd:删除

2017.04.13-2017.07.17

QQ:577007217 今日更新: 2017.07.17 Geomagic Freeform 2017.0.93 Win64 1DVD Geomagic Freeform Plus 2017.0.93 Win64 1DVD Geomagic Sculpt 2017.0.93 Win64 1DVD InnovMetric.PolyWorks.2017.IR3.Win32_64 2DVD Mentor Graphics FloTHERM XT 3.1 Win64 1DVD PolyBoard Pr

2017.12.20 Python 文件I/O

2017.12.20 Python 文件I/O 1.open参数及Character作用 open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True) ========= ===============================================================Character Meaning--------- ------------

2017.12.20 2周3次课

2017.12.20 二周第三次课 2.14 文件和目录权限chmod 命令chmod( change mode的简写 )用于改变用户对文件/目录的读写执行权限 其格式为:chmod [-R] xyz文件名(这里的xyz表示数字).其中,·-R选项的作用等同于chown命令的一R选项,也表示级联更改. 属性的含义: [r]:读 : [w]:写: [x]:执行: [-]:不可以: 值得注意的是,在Linux系统中,一个目录的默认权限为755,而一个文件的默认权限为644. 为了方便更改文件的权限,

2017.5.20欢(bei)乐(ju)赛解题报告

预计分数:100+20+50=first 实际分数:20+0+10=gg 水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知道不久除了自己别墅,其他的地方都将会被洪水淹没. CCY所在的城市可以用一个N*M(N,M<=50)的地图表示,地图上有五种符号:“. * X D S”.其中“X”表示石头,水和人都不能从上面经过.“.”表示平原,CCY和洪水都可以经过.“*”表示洪水开始地方(可能有多个地方开始发

2017 5 31 php面向过程 面向对象1

面向过程的语法定义变量:定义函数:使用变量(输出,赋值,等)调用函数:流程控制(if,switch,for,while等) 面向对象的语法1,定义类:定义类的语法中,只有这3种代码:1.1定义属性(变量)1.2定义方法(函数)1.3定义常量(类常量)2,创建类的对象:3,使用对象:使用对象也几乎只有3个方式:3.1使用其属性:因为属性就是"变量",则使用其属性,也就是跟以前使用变量一样.3.2使用其方法:因为方法就是"函数",则使用其方法,也就是跟以前使用函数一样.

C++ Primer 学习笔记_66_面向对象编程 --定义基类和派生类[续]

算法旨在用尽可能简单的思路解决问题,理解算法也应该是一个越看越简单的过程,当你看到算法里的一串概念,或者一大坨代码,第一感觉是复杂,此时不妨从例子入手,通过一个简单的例子,并编程实现,这个过程其实就可以理解清楚算法里的最重要的思想,之后扩展,对算法的引理或者更复杂的情况,对算法进行改进.最后,再考虑时间和空间复杂度的问题. 了解这个算法是源于在Network Alignment问题中,图论算法用得比较多,而对于alignment,特别是pairwise alignment, 又经常遇到maxim

张小龙在2017微信公开课PRO版讲了什么(附演讲实录和2016微信数据报告)

今天2017微信公开课PRO版在广州亚运城综合体育馆举行,这次2017微信公开课大会以“下一站”为主题,而此次的微信公开课的看点大家可能就集中在腾讯公司高级副总裁.微信之父——张小龙的演讲上了!今天中午各个互联网圈子里面传的最多的就是张小龙的演讲实录(别急,下面会附上张小龙的演讲实录).说的最多的话题就是微信小程序.今天马浩周带大家来解读和了解下2017微信公开课PRO版到底做了些什么? 从今年的2017微信公开课PRO版上面,我们可以提取出几个重点(敲黑板,划重点啦): 1.微信小程序将在20