葡京娱乐注册简单来说三层写法 ,为何要要运用三层架构,简单三层架构实现简单的用户登陆注册删除

洛桑别称鹭岛,是市鸟“白鹭”栖息的地点,城在海上、海在城中;如今的卢萨卡已经改成小资、小众旅行的圣地,瓜达拉哈拉玩的是一种色彩这样说一点也不为过,慢生活、悠闲、纯手工、特色小吃、甚至是到鼓浪屿上邂逅一只猫,其中慢生活就是罗安达给予游客最好的旅行体验新章程;不要抱着什么样目标心,也毫无抱着别样的预期,跟着自己随便的心绪与脚步,来一场说走就走的轻薄之旅;
玩转菲尼克(Nick)斯的门槛就是融入和摸索,只有融入你才能感受到浦那不平等!唯有探寻喧哗才能检索背后的沉静小路,那样您才会了解第比利斯的真正魅力,千万不要停留在表面的红火,用心逐步地深远老罗安达人的活着中,才能感受到明斯克的生活图景和不平等的地拉那味;

前日我们的话说三层,首先我们来看一下百度健全对于三层架构的讲演:三层架构(3-tier
architecture) 平常意义上的三层架构就是将一切业务使用细分为:界面层(User
Interface layer)、业务逻辑层(Business Logic Layer)、数据访问层(Data
access
layer)。区分层次的目标即为了“高内聚低耦合”的构思。在软件体系架构设计中,分层式结构是最广大,也是最要害的一种结构。微软引荐的分层式结构相似分为三层,从下至上分别为:数据访问层、业务逻辑层(又或称为世界层)、表示层。

地拉那热度最高、人气最旺的地点要数鼓浪屿啦,鼓浪屿是一座文化底蕴极其风韵的小众旅行胜地,小岛面积1.91平方海里,由于历史由来小岛不仅所有“万国建筑博览”、“钢琴之岛音乐之乡”的美誉,且就在刚刚过去2017,鼓浪屿成功升级为世界文化遗产,说到这我想老铁们应当就能知晓,为何绝大部分观光客出境游鼓浪屿后会有失落感,鼓浪屿和她(她)们心中的这个岛屿
落差很大,原因只有一个这就是鼓浪屿不可能按照传统的观光格局来读,鼓浪屿,一个有故事有心思的地方,时光在此地慢了下来;

 

小众玩法之一:鼓浪屿享誉“万国建筑博览”的名称可不是徒有虚名的,早在安卡拉五口流通未来,鼓浪屿先后有十多个国家在岛上设领事馆、公馆、洋行,上个世纪二三十年份拥了一批华侨回乡创业短短的几年时间鼓浪屿上建了1000多栋别墅,至今保留完好可供参观的有200多栋,鼓浪屿上的每一栋别墅背后都有一段传奇的故事;

咱俩接纳三层架构就是为着让总体程序能够进一步容易维护,业务逻辑和显现模式还有数据库操做都能够分离来写,这样开发人士也可以更好的分工。而且便于扩展,假如假如业务需求扩大活着要删减某个需求,也便于修改。

明日小编就简单举例说一下鼓浪屿十大豪宅之一的“黄荣远堂”,黄荣远堂,位于鼓浪屿广东路32号,始建于1920年,位列鼓浪屿十大别墅之一,建筑和花园极富美感和特性,是西洋、南洋、中国古典和当代作风相结合的样子之作,建筑全体设有多处廊柱,用整条花岗岩雕石,具有古布拉格风韵,柱头多为古希腊陶立克柱式,建筑正立面由大圆柱和拱券烘托,周边由小圆柱支撑,一派古奥克兰威仪,卓殊壮观秀美,主体建筑原为菲律晋降籍华侨施光从所投资兴建,1931年施氏家族举家迁往菲律宾生活;施光从和黄仲训二人乘轮出洋,途中两个人闲得无聊,指出玩牌打发时光,于是就以扑克牌比大小点,结果施光丛输掉了这栋豪宅,施光丛从菲律宾归来后,收拾完再也从不回鼓浪屿,这幢别墅被誉为鼓浪屿“最妖媚的别墅”;作为第一次吃瓜群众觉得鼓浪屿上的别墅是如何感触呢?

 

小众玩法之二:鼓浪屿除了每栋别墅背后的一段佳话,还出名副其实“钢琴之岛、美学家的发源地”,早在鸦片战争期间西方传教士一手拿着圣经,另一手拎着钢琴踏入鼓浪屿岛,他们不仅把宗教带到岛上,而且西方的钢琴文化也在岛上生根;鼓浪屿人均钢琴占有率为全国之冠,平均每3户就有一架钢琴,每当你中午或者深夜走在鼓浪屿的珠圆玉润小巷你就会听到悦耳的钢琴声;鼓浪屿音乐人才辈出,孕育出举世有名的钢琴、提琴演奏家、指挥家和音乐文学家,如:有“中国第一个声乐女指挥”称号的周淑安;前新加坡声乐商量所所长林俊卿;钢琴演奏家殷承宗、许斐平、许斐星、许兴艾、卓一龙;指挥家陈佐湟;小提琴演琴家许斐尼;钢琴教育家李嘉禄,以及殷承基、洪昶、吴天球等戏剧家;

下面大家就来用三层构造实现用户登录:

听琴与看琴的特级去处是鼓浪屿钢琴博物馆,钢琴博物馆是由鼓浪屿出生的澳籍华人胡友义先生把一生收藏的96家钢琴于1999年装运到鼓浪屿,在2000年10月8日,中国首家、世界罕有的鼓浪屿钢琴博物馆在风光秀丽的菽庄花园“听涛轩”开幕了;早在上个世界的亚洲钢琴是贵族家庭中的一种家居摆设,一架钢琴的市值在及时约等于一位普通工人30年不吃不喝的工钱,有些贵族小姐一贯不会弹琴,可是又要不失内涵,于是就有了自行弹奏的钢琴,在钢琴博物馆里就足以见见自动钢琴的五指山精神;

第一步我们成立一个缓解方案,里面添加四个类库,如下图所示:

钢琴博物馆分为1号,2号多少个展览馆,每个馆的授课时间与演奏时间不同,指出先从1号起首参观,一定要听讲课,因为每架钢琴都会意味着一个钢琴时代或钢琴的本土,温馨指示,即便咱们不会弹琴,但大家不能够在馆内争弹琴,无法照相,无法大声喧哗哦;

葡京娱乐注册 1

一馆的表演时刻:

这四个类库分别表示的是业务逻辑层BLL,数据访问层DAL,还有实体Entity,下一步就是添加你需要的变现层,我为了表示领会直接采纳了UI命名。葡京娱乐注册 2

9:00,10:00,11:00;

成立数据库我就不详细介绍了,只贴出代码就好了

13:30,14:30,15:30,16:30;

1 CREATE TABLE [dbo].[Users]
2 (
3     [Id] INT NOT NULL PRIMARY KEY IDENTITY(1,1), 
4     [Name] NVARCHAR(50) NOT NULL, 
5     [Pass] NVARCHAR(50) NOT NULL
6 )

二馆的演出时刻:

 

9:30,10:30,11:30;

现在大家先来开端写多少访问层,在数据访问层里,大家首先建立一个帮助类SQLServerDALHelper,实现数据连接,代码如下:

14:00,15:00,16:00,17:00;

葡京娱乐注册 3葡京娱乐注册 4

小众玩法之三:鼓浪屿除了有“穿西装戴斗笠”的建筑、海岛色情、情人幽会等,偶遇一个医学小店这是文艺范的您最激动不过的事了,一提起鼓浪屿就会令人与小资、文艺范联系上,作为半小资的文青,我想以此地点一定是您的菜,在鼓浪屿上有很多风格各异的甜品店,有的怀旧,里面放着许多很有年代的老物件;每经过一个小店你可能都会看出不平等的含意,转过一个街头,你都会有不期而遇的感受,这种感觉特此外休闲,在不上心间您会发现你来到了一个很小资的地方,又从中去感受到了重重故事;

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Data.SqlClient;
 5 using System.Data;
 6 using System.Text;
 7 
 8 namespace DAL
 9 {
10     public static class SQLServerDALHelper
11     {
12         //integrated security=true 的意思是集成验证,也就是说使用Windows验证的方式去连接到数据库服务器。
13         public static string Consql = @"Data Source=PC-201610212048;Initial Catalog=People_Data_System;Integrated Security=True";
14 
15         public static bool ExecuteNonQuery(string sql)
16         {
17             try
18             {
19                 using (SqlConnection conn = new SqlConnection(Consql))
20                 {
21                     conn.Open();//打开数据库
22 
23                    using( SqlCommand com = new SqlCommand(sql, conn)){
24                     return com.ExecuteNonQuery() > 0;
25                        //通过cmd对象对数据库进行操作,执行非查询
26                    }
27                 }
28             }
29             catch
30             {
31                 throw;
32             }
33         }
34 
35         public static Object ExecuteScalar(string sql)
36         {
37             try
38             {
39                 using (SqlConnection conn = new SqlConnection(Consql))
40                 {
41                     conn.Open();//打开数据库
42 
43                     using( SqlCommand com = new SqlCommand(sql, conn))
44                     {
45                         return com.ExecuteScalar();
46                     }
47                 }
48             }
49             catch
50             {
51                 throw;
52             }
53         }
54 
55         public static SqlDataReader GetDataReader(string sql)
56         {
57             try
58             {
59                 SqlConnection conn = new SqlConnection(Consql);
60 
61                 conn.Open();
62 
63                 using (SqlCommand com = new SqlCommand(sql, conn))
64                 {
65                     return com.ExecuteReader(CommandBehavior.CloseConnection);
66                 }
67             }
68             catch
69             {
70                 throw;
71             }
72         }
73     }
74 }

鼓浪屿岛上有这么一家小店的小黑板上写着 “你不来,我不老”,那一份痴心的守候与护理,就像《恋空》的结局一样,男主角变成了白云,永远守护着女主角,他们的爱是固定的,一种Plato式的恋情。你猜店家是否也在固执于这样一份等待,“你不来,我不老”一句话背后却蕴含着一段情,想出这句话的特别人在她内心,肯定憧憬过具有那么一份情绪,可以不趁着年华而老大,默默的等待,直到有一天境遇那多少个对的人;

View Code

实质上只要非要把鼓浪屿做个比方的话,比喻成一个明媚的巾帼,渴望被人一辈子收藏好,妥善安放,细心保留。鼓浪屿很美,美到让人有点语无伦次,想要和人诉说,不过却不领悟要从啥地方说起,因为每一处都是一个故事,每一个景都蕴含着一段情;

援救类写完事后就从头写数据库操做工作了,在这边说一下,援助类微软特别有自己包装的类,可以直接下载使用。数据访问代码如下:这里有简短的增删查方法

尚未看出鼓浪屿的日出是个遗憾,没有可以在凌晨3点的时候游荡在鼓浪屿的所在是个遗憾,没有留宿在鼓浪屿的春意小店是个遗憾,还有。。。。。。。。或许就是这各类的不满,在冥冥之中注定了老年您还要再度登上鼓浪屿;

葡京娱乐注册 5葡京娱乐注册 6

鼓浪屿在世遗未来做了成百上千保养措施,同时也是为了让旅游者更好的体验鼓浪屿的内涵美,所以鼓浪屿岛上重重的安身之地、洋行、领事馆等都是免费对外开放的,要是走累了可以在前后的书摊或老别墅里歇歇脚,来杯咖啡或中午茶,体验一下鼓浪屿贵族生活,那样的玩法才不失情调;

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using Entery;
 5 using System.Data.SqlClient;
 6 using System.Text;
 7 
 8 namespace DAL
 9 {
10      public class PeopleDAL
11     {
12          public bool Insert(People p)
13          {
14              return SQLServerDALHelper.ExecuteNonQuery(
15                  "insert into Users(Name,Pass) values('"
16                 + p.Name
17                 + "','"
18                 + p.Password
19                 + "')");
20          }
21          public bool Delete(People p) {
22              return SQLServerDALHelper.ExecuteNonQuery(
23                  "delete from Users"
24                 + " where Name = '"
25                 + p.Name
26                 + "'"
27                  );
28          }
29 
30          public bool Select(People p) {
31              return SQLServerDALHelper.ExecuteScalar(
32                  "select Pass from Users where Name = '"
33                  + p.Name
34                  + "'").ToString() == p.Password;                
35          }
36          /// <summary>
37          /// 返回数据集
38          /// </summary>
39          /// <returns></returns>
40          public List<People> SelectAll()
41          {
42              return ConvertReaderToTicketList(SQLServerDALHelper.GetDataReader(
43                     "select * from Users"
44                  )
45              );
46          }
47 
48          public static List<People> ConvertReaderToTicketList(SqlDataReader dr)
49          {
50              List<People> ts = new List<People>();
51 
52              if (dr.HasRows)
53              {
54                  while (dr.Read())
55                  {
56                      ts.Add(new People(dr[0].ToString(), dr[1].ToString()));
57                  }
58              }
59 
60              return ts;
61          }
62     }
63 }

明日的鼓浪屿限客,如若您安排好旅行计划后,提议您提前预定鼓浪屿船票,尤其是节日或周末真的是一票难求,从前就有无数伙伴私信小编询求鼓浪屿船票连忙预订通道,小编经过2个月的收集与老铁们的反馈,找到一个gzh,都林旅游票务主旨,无需繁琐注册与实名认证即可兑现无障碍很快预订通道,更要紧的是不需要取票直接刷身份证登船;倘使你使用后以为便利,这就请您珍藏与享受给需要的老铁们!

View Code

从四个不等的角度去分析鼓浪屿,想必本次的鼓浪屿之行不会让您失望,依照个体的兴趣爱好来挑选万国建筑、钢琴博物馆加最文艺的鼓浪屿小店,这才是旅行,90%的旅游者旅行模式不对导致旅行疲劳,落差很大,即发钱买罪受;希望老铁们看来此篇小众玩法后,能对首次去鼓浪屿的众生有援救,下篇小编会更新玩鼓浪屿最经典的路径,发3-6钟头体验鼓浪屿贵族式的旅行,全程不超8000步,带您探秘鼓浪屿;

大家的数量访问层这就早已写完了,这里究竟也都只是套路而已,领悟了套路,所有的事物等于都控制了。

仅供参考,倘若对您有帮衬谢谢 赐赞,分享有惊喜,承蒙我们厚爱~

接下去大家先写实体类,实体类映射的是数据库表,所以实体类里面的性质一定要对应数据库中的表。

大多数人去游览

葡京娱乐注册 7葡京娱乐注册 8

一味是去重新别人的情人圈

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 
 6 namespace Entery
 7 {
 8     public class People
 9     {
10         private string name;
11         private string password;
12 
13         public string Name
14         {
15             get { return name; }
16             set { name = value; }
17         }
18 
19         public string Password
20         {
21             get { return password; }
22             set { password = value; }
23         }
24 
25         public People()
26         { 
27         
28         }
29         public People( string name,string password)
30         {
31             this.name = name;
32             this.password = password;
33         }
34     }
35 }

可悲的是,这多亏大部分人的描写

View Code

跟风过去,拍照发朋友圈

此地我添加了一个构造函数,对于可能需要实现的机能来说,重载构造函数就多了一种实现情势,所以无论有用没用,先写上加以。

一如既往的山山水水,相同的路线,相同的肖像,没有其他故事

接下去就是事情逻辑层了,这一个层就需要引用DAL层和Entityc层了,

这尽管是完成了三次游历呢?

葡京娱乐注册 9葡京娱乐注册 10

你的旅行有哪些新鲜嘛?欢迎在底下留言

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using DAL;
 6 using Entery;
 7 
 8 namespace BLL
 9 {
10     /// <summary>
11     /// 这是BLL 业务逻辑层,此层被表现层(UI)调用,同时它自己调用DAL
12     /// </summary>
13     public class PeopleBLL
14     {
15         PeopleDAL dal = new PeopleDAL();
16 
17         public bool Add(People p){
18             //添加一个用户
19             return dal.Insert(p);
20         }
21 
22         public bool Del(People p) {
23             //删除一个用户
24             return dal.Delete(p);
25         }
26 
27         public bool Sel(People p) {
28             //查询用户
29             return dal.Select(p);
30         }
31 
32         public List<People> ShowAll()
33         {
34             return dal.SelectAll();
35         }
36     }
37 }

View Code

大家在写完事情逻辑层之后将要考虑表现层的题材了,为了将增删改查都在一个页面上表现出来,WinForm这样设计

葡京娱乐注册 11所需控件,lable textbox
button dataGridView。

今昔就是考虑实现的时候了。首先写注册,

葡京娱乐注册 12葡京娱乐注册 13

 1      private void button2_Click(object sender, EventArgs e)
 2         {
 3             try
 4             {
 5                 //新建一个类,这里使用无参的构造函数,方便以后反射
 6                 People p = new People();
 7 
 8                 //为它的属性赋值
 9                 p.Name = textBox1.Text.ToString();
10                 p.Password = textBox2.Text.ToString();
11 
12                 //调用bll的添加业务
13                 string message = bll.Add(p) ? "添加成功" : "添加失败";
14 
15                 MessageBox.Show(message);
16             }
17             catch
18             {
19                 throw;
20             }
21         }

View Code

第一注册一个admin
密码也为admin,用来测试登陆和删除,然后实现dataGridView显示所有数据。

葡京娱乐注册 14葡京娱乐注册 15

 1 这里先自定义一个shows()方法,然后在Form_Load里调用shows()方法 
 2 private void shows()
 3         {
 4             try
 5             {
 6                 dataGridView1.DataSource = bll.ShowAll();
 7             }
 8             catch {
 9                 MessageBox.Show("链接数据库出错");
10             }
11         }

View Code

现行登记一个用户然后看看呈现的机能。

葡京娱乐注册 16葡京娱乐注册 17干什么dataGridView会展现这些样子吧?为何添加的粤语用户名会现身??那个标记呢?大家有没有相逢过那种场合

葡京娱乐注册,率先先表明第一个问题,我们的Name显示的真的ID编号,这多少个就是我们的实体类缺失Id这些特性,可是在查询的时候查询的短缺所有的性质,这样子就涌出了这些显示没有对齐的光景,怎么化解吗,两个措施,第一修改查询条件,只询问Name和Pass,第二我们添加实体ID,咱们就用第两种艺术吗。

修改实体代码如下

 1 public string Id
 2         {
 3             get;
 4             set;
 5         }
 6 public People( string id,string name,string password)
 7         {
 8             this.id = id;
 9             this.name = name;
10             this.password = password;
11         }

只这样修改仍然老大的,因为我们在查询艺术上还有错误,接着在改动一下DAL层

 1   public static List<People> ConvertReaderToTicketList(SqlDataReader dr)
 2          {
 3              List<People> ts = new List<People>();
 4 
 5              if (dr.HasRows)
 6              {
 7                  while (dr.Read())
 8                  {
 9                      ts.Add(new People(dr[0].ToString(), dr[1].ToString(),dr[2].ToString()));
10                  }
11              }
12 
13              return ts;
14          }

这般第一个冒出的题材就化解了,下来咱们来说第二个问题,这多少个题材是因为数量格式问题,我们string格式对应的是Varchar()但是我们用的是Nvarchar(),所以大家相应在插入数据这块添加一个N,修改代码如下:

1  public bool Insert(People p)
2          {
3              return SQLServerDALHelper.ExecuteNonQuery(
4                  "insert into Users(Name,Pass) values(N'"
5                 + p.Name
6                 + "',N'"
7                 + p.Password
8                 + "')");
9          }

现今安插数据格式问题也解决了。葡京娱乐注册 18

跟着我们初阶要促成登陆问题了。代码如下:

葡京娱乐注册 19葡京娱乐注册 20

 1  private void button1_Click(object sender, EventArgs e)
 2         {
 3             try
 4             {
 5                 //新建一个类,这里使用无参的构造函数,方便以后反射
 6                 People p = new People();
 7 
 8                 //为它的属性赋值
 9                 p.Name = textBox1.Text.ToString();
10                 p.Password = textBox2.Text.ToString();
11                 
12                 //调用bll的添加业务
13                 string message = bll.Sel(p) ? "登陆成功" : "登陆失败";
14 
15                 MessageBox.Show(message);
16             }
17             catch
18             {
19                 throw;
20                 //如果出错,可能是数据转换出错或者数据库里已经存在相同的票号
21                // MessageBox.Show("输入数据形式错误,或主键重复");
22             }
23         }

View Code

登陆代码实现之后就是删除数据的兑现了,

葡京娱乐注册 21葡京娱乐注册 22

 1 private void button3_Click(object sender, EventArgs e)
 2         {
 3             try
 4             {
 5                 //新建一个类,这里使用无参的构造函数,方便以后反射
 6                 People p = new People();
 7 
 8                 //为它的属性赋值
 9                 p.Name = textBox1.Text.ToString();
10 
11                 //调用bll的添加业务
12                 string message = bll.Del(p) ? "删除成功" : "删除失败";
13 
14                 MessageBox.Show(message);
15             }
16             catch
17             {
18                 throw;
19             }
20         }

View Code

今昔大家所需要的增删查问题都早已实现了,但是还有问题,什么问题吗,我们在运作程序的时候会发先dataGridView呈现数据在执行增删之后都不开展刷新,所以在实施那六个操做的时候工作实践了而是多少却无力回天刷新到dataGridView控件中,我们理应用咋样方法解决吗?我们不是写了一个shows()方法用来突显数据吧,我们倘诺在需要多少刷新的地点调用那一个情势就行了,实现很简短,我就不现实改了,我们下来自己要贯彻的改一下就好了。先天的内容已经写完了,希望我们协助,文中有不当希望我们能够提议来,让自己学习改善。