【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 > ) Console.WriteLine("添加数据成功");
else Console.WriteLine("添加数据失败");
conn.Close();
} }
}
【2017-04-20】Ado.Net与面向对象结合架构中的数据访问层(实体类,数据访问类)的更多相关文章
- 2017.04.20 Adams仿真介绍
Adams 仿真 | 验证"隐性机器人模型"概念,提高视觉伺服精度 产品:Adams行业:科研优势: 1.Adams 仿真可精确预测机器人的位置和方位 2.仿真在理论工作验证中起着 ...
- http://www.liangxiansen.cn/2017/04/06/consul/
Consul 使用手册 | 一个梦 http://www.liangxiansen.cn/2017/04/06/consul/ 基于Consul的分布式锁实现 https://mp.weixin.qq ...
- http://www.cnblogs.com/yycxbjl/archive/2010/04/20/1716689.html
http://www.cnblogs.com/yycxbjl/archive/2010/04/20/1716689.html PS: 开发工具 VS2010, 所有工程都为Debug状态,本人刚接触 ...
- 2017 5 31 php面向过程 面向对象1
面向过程的语法定义变量:定义函数:使用变量(输出,赋值,等)调用函数:流程控制(if,switch,for,while等) 面向对象的语法1,定义类:定义类的语法中,只有这3种代码:1.1定义属性(变 ...
- Java第04次实验提纲(面向对象2-继承、多态、抽象类与接口)
PTA 题集面向对象2-进阶-多态接口内部类 第1次实验 1.1 题集5-1(Comparable) 难点:如果传入对象为null,或者传入对象的某个属性为null,怎么处理? 1.2 题集5-2(C ...
- 2017.5.20欢(bei)乐(ju)赛解题报告
预计分数:100+20+50=first 实际分数:20+0+10=gg 水灾(sliker.cpp/c/pas) 1000MS 64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地 ...
- Image Processing and Computer Vision_Review:HPatches A benchmark and evaluation of handcrafted and learned local descriptors——2017.04
翻译 HPatches:手工和学习本地描述符的基准和评估——http://tongtianta.site/paper/8979 摘要:在本文中,我们提出了一个评估本地图像描述符的新基准.我们证明现有数 ...
- 通过整合遥感数据和社交媒体数据来进行城市土地利用的分类( Classifying urban land use by integrating remote sensing and social media data)DOI: 10.1080/13658816.2017.1324976 20.0204
Classifying urban land use by integrating remote sensing and social media data Xiaoping Liu, Jialv ...
- 2017.9.2Java中的自定义类型的定义及使用&&自定义类的内存图
今日内容介绍 1.自定义类型的定义及使用 2.自定义类的内存图 3.ArrayList集合的基本功能 4.随机点名器案例及库存案例代码优化 01引用数据类型_类 * A: 数据类型 * a: java ...
随机推荐
- vi/vim命令使用
首先讲一些vim和vi的区别: 它们都是多模式编辑器,不同的是vim是vi的升级版本,它不仅兼容vi的所有指令,而且还有一些新的特性在里面.vim的这些优势主要体现在以下几个方面:1.多级撤消我们知道 ...
- C#创建windows服务(一:初识windows服务)
一 . 服务简介 Microsoft Windows 服务(过去称为 NT 服务)允许用户创建可在其自身的 Windows 会话中长时间运行的可执行应用程序. 这些服务可在计算机启动时自动启动,可以暂 ...
- Java中的字节,字符与编码,解码
ASCII编码 ASCII码主要是为了表示英文字符而设计的,ASCII码一共规定了128个字符的编码(0x00-0x7F),只占用了一个字节的后面7位,最前面的1位统一规定为0. ISO-8859-1 ...
- Linux学习—rpm包管理
前言 在linux上,一个软件通常由二进制程序,库文件,配置文件和帮助文件组成.其中: 二进制程序一般都放在/bin,/sbin,/usr/bin,/usr/sbin,/usr/local/bin和/ ...
- MariaDB知识点总结02--日志+备份
一.日志 1.查询日志 记录每一条sql语句,建议不开启,因为如果访问量较大,会占用相当大的资源,影响性能; vim /etc/my.cnf.d/server.cnf general_log = ON ...
- Java 基础篇之lambda
Lambda 示例 public interface Eatable { void taste(); } public interface Flyable { void fly(String weat ...
- sha256算法原理
1. SHA256简介 SHA256是SHA-2下细分出的一种算法 SHA-2下又可再分为六个不同的算法标准 包括了:SHA-224.SHA-256.SHA-384.SHA-512.SHA-512/2 ...
- 解决VScode无法输出中文的问题
VScode输出框输出不了中文 解决方法: 在环境变量里面增加:PYTHONIOENCODING为UTF-8 重启vscode即可
- Prefix and Suffix Search
Given many words, words[i] has weight i. Design a class WordFilter that supports one function, WordF ...
- linux环境下Python搭建
安装gcc yum install gcc 安装zlib yum -y install zlib* 安装openssl-devel yum install openssl-devel -y ...