实体层在三层架构中的地位:

1.实体对象实际上是对应着数据库里的每张表的,我们把表里的字段封装在1个实体对象里 当你想用哪个字段 你就就通过该实体对象的get() set() 把那个字段提取出来 这比你临时创建1个变量要灵活的多 而且便于程序的维护和扩展.在实际的3层结构开发中,专门有个实体层,他的作用就是便于层和层之间的数据传递 ;

2.实体体现了面向对象程序开发的思想,把大量的数据进行封装 然后传递.当然 如果只是1,2个参数,那么传递实体或者传递变量都可以 。

比如你想查询某个学号的学生信息,那么你完全就可以以ID为参数传下去 就没必要把他再封装到实体对象里;

值与引用的区别:

将一个变量作为参数进行传递,本质是传栈空间的存储内容;

if (reader.Read()){  per = new MODEL.Person(); ** // 如果有数据,就创建对象,一行数据就对应着 一个实体类对象 }//读取一行记录,从第一行开始,if()的作用是最多一行数据

return comm.ExecuteReader(CommandBehavior.CloseConnection);//中的CommandBehavior.CloseConnection  可以用作关闭通道的用途;

从数据库表中读取的数据到c#里面都会被做一层封装:1.如果是具体的值,就封装为object, 如果是null值就被封装为DBNull,这种类型的值不方便用户后期操作,所以我们需要将这些类型的值转换为面向对象的数据---实体类对象,同时要明确,一行数据就对应着一个实体类对象,对象里面,包含了,name,cid....这些列内容,再将取出来的数据,object转换成值类型;

例:

per.name=reader["name"].tostring();

params 构造函数声明数组 而不知道数组长度 用的
在方法声明中的 params 关键字之后不允许任何其他参数,并且在方法声明中只允许一个 params 关键字。

params是指可变参数,它会根据调用方法的实参值生成一具对应长度的数组,如:没有传递实参值,那么就相当于SqlParameter[] p=new SqlParameter[0];如果传递了参数,那么就相当于SqlParameter[] p=new SqlParameter[]{p,p2,p3,p4};强调:params只能修饰数组

一般是存在于方法声明当中

例如: public static void UseParams(params int[] list){}

public static void UseParams2(params object[] list) {}

public static SqlDataReader ExecuteReader(string sql,params SqlParameter[] ps){}

注意:

cmd.Parameters的Add方法是增加一个参数,增加多个参数的的时候使用一个foreach循环而已

cmd.Parameters的AddRange方法是增加一个参数的数组

配置文件的应用:

引用中选择框架,找到System.Configuration这个选项,选择引用;

在需要调用连接字符串的类中加入:readonly static string constr = System.Configuration.ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

最中要的是在UI层的配置文件App.config中添加下面的代码:

<connectionStrings>
<add name="constr" connectionString="Data Source=.;Initial Catalog=ItcastSIM;Integrated Security=True"/>
</connectionStrings>

当需要修改数据库时候,使用配置文件可以避免导致程序出错,若需要修改数据库,则直接将配置文件找到打开后修改便可;

sqlHelp类的出现,是为了将重复的代码,封装成一个类对象,然后需要的时候就直接调用到该类中的方法,例如sqlDataReader reader=sqlHelp.ExecuteReader(comm,p,p2);

转载于:https://www.cnblogs.com/backpacker-lzf/p/4677278.html

学生管理系统(简易)7/26相关推荐

  1. Java mysql学生管理系统(简易)源

    学校要求搞了一个小项目.实习生写的代码还有很多不足,但是基本功能都实现 懂得都懂,还缺少优化!各位可以自己加功能 (想要完整代码直接拖到下面复制) 1.第一步搭建mysql 首先我是采用了小皮面板8. ...

  2. Java09-day09【ArrayList(概述、构造方法、常用方法、遍历)、简易学生管理系统】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  3. 制作基于springboot的简易学生管理系统(详细)

    制作基于springboot的简易学生管理系统(详细) 基于书本与百度创作,内容简易,请多多指教( ̄▽ ̄)/ 设计一个简易学生管理系统 所需环境 创建一个springboot项目 设计数据库 配置Gr ...

  4. java学生管理系统(简易)(三)---教师端的登录主页面

    教师端的登录界面就比较清晰了...可能就我自己认为,以为前面写的太乱了...蒙圈 // 学会了先布局,在完善部分代码,嘤嘤嘤...之前那个学生的感觉凉凉啊~ // 有些代码中可能有main函数,有些没 ...

  5. python制作学生管理系统_Python——面向对象,简易学生信息管理系统

    一.概述 1.1涉及到的知识点 项目开发:创建项目,创建包,导入包: 面向对象:静态方法,继承,内置函数,自定义函数: 数据类型:列表,字典,字符串.列表.字典的转换和自动生成导向: 异常处理:捕获异 ...

  6. c语言实现学生二科成绩的单链表,c++链表实现学生成绩管理系统(简易版)

    #include using namespace std; typedef struct student{ int id;//学号 string sex; string name; int cpp;/ ...

  7. C#简易学生管理系统

    添加3个类,分别实现 IComparer接口,实现对Student类的三个字段的排序. 1.学生类:学号.姓名.年龄 2.请选择:1.添加学生信息.2.删除学生信息 2.查询学生信息. 3.重复的学号 ...

  8. 用代码证明自己闲的蛋疼(四)——简易坑爹版学生管理系统

    众所周知,学生管理系统一直频繁的出没在我们的毕业设计当中. 当然,其大多数都是基于BS(Browser/Server)开发的~当年萌新的我还妄想用C写一个win32控制台的管理系统作为毕设蒙混过关,然 ...

  9. GUI+Mysql 仿照水果超市实现简易学生管理系统

    GUI+Mysql 仿照水果超市实现学生管理系统! **当我们学习完到GUI界面和JDBC的时候,就可以实现一些简单的小程序的. 下面是一个仿照水果超市实现学生管理系统的介绍,由一个主类实现.** 首 ...

最新文章

  1. wpfdiagram 学习 教学_李倩、吴欣歆:新高考背景下高中语文教学的三个转变
  2. nodeJs 控制台打印中文显示为Unicode解决方案
  3. (23)System Verilog设计二分频电路
  4. javafx-TableView 行颜色设置
  5. iOS自动布局之autoresizingi
  6. 2018 蓝桥杯省赛 B 组模拟赛(一)--- H. 封印之门(最短路)
  7. Django 输出二维码
  8. 图像语义分割(15)-ConvCRFs:用于语义分割的卷积条件随机场
  9. wget:Unable to establish SSL connection错误
  10. 腾讯QQ关闭所有的热键,防止冲突
  11. 酷派D530刷机指引
  12. ​网线水晶头排线图片接线标准
  13. 微信生态圈盈利模式分析
  14. 将iPhone投影到Mac上
  15. 避坑:关于两个HC-05主从一体蓝牙模块互连,连不上问题
  16. linux php zlib,Linux查询zlib版本
  17. 温故知新-什么是软件工程
  18. Visual Studio 2017、2019 无法启动的解决方法
  19. 关于近视眼手术网友的评价
  20. mysql5.1 emoji_技术|如何在 MySQL 中存储 emoji ?

热门文章

  1. intel cpu 漏洞 linux,Intel CPU架构漏洞越捅越大:打补丁将损失30%性能
  2. 训练效果不好的解决办法
  3. QWidget *parent
  4. uniapp 自动播放背景音乐
  5. csv是python内置模块吗_Python--CSV模块 - 一只小小的寄居蟹 - 博客园
  6. vue中使用原始html插值,VUE.JS中的插值表达式、v-cloak、v-text、v-html、v-bind:、v-on:...
  7. 邮件群发 php shell,Shell发送邮件以HTML展示
  8. miniblink载入html,(转)miniblink跨线程异步JS回调,及miniblink提升首屏加载速度的代码...
  9. pythonurllib的使用_python re和urllib的使用问题。
  10. 原理图框图_GW1N9芯片测评之GW1N Zero原理图、3D模型及PCB设计(二)