三层架构

最近在学初学架构  学长让我们看三层架构  我便百度了一下  综合看了  这一篇CSDN的质量很好  很适合初学者 我就当搬运工  粘贴过来了
http://blog.csdn.net/hanxuemin12345/article/details/8544957/



三层架构里的实体类
很明显的看出,用实体类之后,代码明显变得简洁,面向对象封装思想。
     最重要的是,如果将来有所改动,只需要改动实体类,方法间调用接口,
     完全不需要变动,大大减少了程序修改量,迎合了面向对象中接口不变的思想。
     对于参数极少,目的明确的方法,个人认为没必要用实体类。
     实体类中  
      public DateTime? CC_LockDateTime { get; set; };表示可空的意思
      internal 表示只能在程序集内部访问
     public void xx( params char[] sq )     
        调用的时候可以xx('1','d','s')  可以直接填值

        CommandType是SqlCommand对象的一个属性,用于指定执行动作的形式,它告诉.net接下来执行的是一个文本(text)、存储过程(StoredProcedure)还是表名称(TableDirect).

而CommandType是一个枚举类型。有三个值:text、StoredProcedure、TableDirect用于表示SqlCommand对象CommandType的执行形式。
学生实体类:

1: using System;
2: using System.Collections.Generic;
3: using System.Linq;
4: using System.Text;
5: using System.Data ;
6:
7:
8: namespace entity
9: {
10: ///
11: /// 学生实体类
12: ///
13: public class Student
14: {
15: private string _Name;
16: private string _Sex;
17: private string _StudentID;
18: private DateTime _Birthday;
19: ///
20: /// 空构造方法
21: ///
22: public Student()
23: {
24: }
25: ///
26: /// 带参数构造方法,用来给实体类辅助,方便了赋值语句
27: ///
28: /// 姓名
29: /// 性别
30: /// 学号
31: /// 生日
32: public Student(string name, string sex, string studentID, DateTime birthday)
33: {
34: this._Name = name;
35: this._Sex = sex;
36: this._StudentID = studentID;
37: this._Birthday = birthday;
38: }
39: ///
40: /// 将数据库查询得到的弱类型集合,转换成强类型的实体类
41: ///
42: /// 记录集
43: ///
44: public Student Switch(DataTable dt)
45: {
46: Student stu = new Student();
47: //将数据库查询出来的字段,转换成实体类
48: stu.StudentID = dt.Rows[0][“StudentID”].ToString() ;
49: stu.Sex = dt.Rows[0][“Sex”].ToString() ;
50: stu.Name = dt.Rows[0][“Name”].ToString();
51: stu.Birthday =Convert .ToDateTime ( dt.Rows[0][“Birthday”]);
52:
53: return stu;
54: }
55: ///
56: /// 姓名
57: ///
58: public string Name
59: {
60: get { return _Name; }
61: set
62: {
63: //(加工1)转换数据为字符串
64: _Name = value.ToString ();
65: }
66: }
67: ///
68: /// 性别
69: ///
70: public string Sex
71: {
72: //(加工2)在实体类中通过设置对象的默认值,防止没有赋值造成错误
73: get
74: {
75: //如果没有对sex赋值,则默认为男
76: return _Sex != null ? _Sex : “男”;
77: }
78: set { _Sex = value; }
79: }
80: ///
81: /// 学号
82: ///
83: public string StudentID
84: {
85: get { return _StudentID; }
86: //(加工3)通过set方法来控制输入学号大小
87: set
88: {
89: if (value.Length > 10)
90: {
91: throw new Exception(“学号不能超过10位数!”);
92: }
93: else
94: {
95: _StudentID = value;
96: }
97: _StudentID = value;
98: }
99: }
100: ///
101: /// 生日
102: /// (加工4)下面的示例是自动实现的属性中的 set 访问器.
103: /// 一种简单的方式
104: ///
105: public DateTime Birthday { get; set; }
106: }
107: }

其他类的调用:

1: private void button1_Click(object sender, EventArgs e)
2: {
3:
4: string strName = “张三”;
5: string strID = “123”;
6: string strSex = “男”;
7: DateTime dtmBir = Convert.ToDateTime(“2000-02-02”);
8:
9: //客户端调用实体类的构造函数,赋值比较方便
10: Student stu = new Student(strName, strSex, strID, dtmBir);
11:
12: //直接可以将datatable转换成实体类
13: DataTable dt = new DataTable();
14:
15: Student stuDt = new Student();
16: stuDt = stuDt.Switch(dt);
17: }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值