zoukankan      html  css  js  c++  java
  • 学生管理系统(简易)7/26

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

    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);

  • 相关阅读:
    jquery跨域请求jsonp
    php返回json,xml,JSONP等格式的数据
    chrome常用配置
    html body标签的几个属性 禁用鼠标右键,禁用鼠标选中文字等
    jquery form表单序列号
    php实时输出内容能够
    php Xdebug调试
    jsonp的简单例子
    web调试的一些小技巧
    jq动态增加的button标签click回调失效的问题,即动态增加的button标签绑定事件$("button.class").click(function)无效
  • 原文地址:https://www.cnblogs.com/backpacker-lzf/p/4677278.html
Copyright © 2011-2022 走看看