1. ado.net步骤:
     一:倒入命名空间
      using System.Data;
      using System.Data.sqlclient;
     二:第一个模型 int  ExecuteNonQuery();返回受影响的行数
      准备连接字符串
      准备sql语句
      创建连接对象(sqlconnection)
      创建执行对象 (sqlcommand)
      打开连接
      执行操作
      关闭
    整合:
      string connStr="server=.;database=机器名或ip或实例名;uid=撒;pwd=123(integrated security=true);";
      string sql="";
      int count;
      using(Sqlconnection con=new Sqlconnection(connStr))
     {
           using(SqlCommand cmd=new SQlcommand(sql,con))
          {

con.open();
             int count=cmd.ExecuteNonQuery();

}

}
2.连接池
3.第二个模型
   object ExecuteScalar()  返回查询的第一行第一列的结果。集体的语法和ExecuteNonQuery()基本一样
       string connStr="server=.;database=机器名或ip或实例名;uid=撒;pwd=123(integrated security=true);";
      string sql="";
      object o;
      using(Sqlconnection con=new Sqlconnection(connStr))
     {
           using(SqlCommand cmd=new SQlcommand(sql,con))
          {

con.open();
             object o=cmd.ExecuteScalar();

}

}
     ExecuteScalar  一般与聚合函数一起使用
4.编写三层的步骤:(用年龄自动增长的案例来说)
    1.确定需求
       点击按钮实现年龄自动增加
    2.根据需求确定sql语句
       update Teacher set age=age+1 where id=@id
    3. 编写数据访问层
       3.1 首先编写一个操作特定表的数据访问层的类xxxDAL
           因为有了sql语句,迟早都要执行,所以先编写执行该sql语句的代码。注意 执行sql语句的代码要放在“数据访问层”
           在数据访问层中将来可能要执行很多sql语句,不同的sql语句可能操作不同的表,所以我们要为不同的表建不同的类,在某个类中都是关于操作某张表的sql语句
           SqlHelper放到数据访问层,配置文件放到表现层(UI)
       3.2 编写具体的执行指定sql语句的方法:1->确定方法的参数(一般sql语句里有几个参数那么该方法就有几个参数,如果sql要返回多个值时就要建一个Model对象用来封装某个特定表里面的所有字段,Model不属于任何一层,每个层都可以调用。注意如果有参数就要写SqlParameter[])  2->确定方法的返回值(执行完毕sql语句,数据库返回了什么,那么该方法就原样返回该值,不做任何判断***)
    4.编写业务逻辑层
      4.1 首先编写一个操作特定表的业务逻辑层类xxxBLL
      4.2根据表现层的需求,确定业务访问层类的方法:1->确定方法的参数  2->确定方法的返回值

5.表现层调用业务层实现功能
5.        //当一个方法返回值是一个集合的时候,一开始首先New一个集合对象,即便集合里面没有东西也要返回长度为0的集合,不要返回null
         //当一个方法返回值是一个对象的时候,一开始可以声明这个对象,让这个对象等于null,如果查到了数据就给这个对象实例化,最后返回这个对象
第二部分:ASP.NET
 
第一块  WebForm(.ashx)
1.此处的Write()方法里面的文本不会被发送到浏览器输出,因为在这里是用了Redirect(),
  Redirect的内部完全生成一个新的 已规定好的响应报文发给浏览器
  context.Response.Write("删除成功");
  context.Response.Redirect("C02.ashx");  
 2.上传文件是浏览器端:
     如果要上传,就必须设置表单method=post,而且enctype=multipart/form-data,
     一旦设置了enctype="multipart/form-data,那么浏览器生成请求报文的时候,就会生成分隔符
     并且更换请求报文的数据 组织格式(使用分隔符来分开不同HTML表单控件的内容
 2.1上传文件是服务器端:
        //接受文件
         HttpPostedFile file= context.Request.Files[0];
            //判断上传上来的图片还是文本文件
            if(file.ContentLength>0)
            {
               string filename= System.IO.Path.GetFileName(file.FileName);
               //保存
               file.SaveAs(context.Server.MapPath("/upload/" + filename));
            }
              
第二块  WebForm(.aspx)
  1.WebForm中 程序员一般在Page_Load中编码(类似于一般处理程序的PR方法)
   2.webForm程序直接可以右键浏览器中查看,而且会自动读取模版
  3. <%--这里的=相当于Response.Write--%>
       <%=sbtrs.ToString() %>
  4.更重要是在WebForm中前台页面可以访问到后台页面类里面受保护的全局变量(***也就是说前台页面是后台页面的子类,因为只有子类才可以访问到父类中受保护的成员***)  
  5.在第一次访问前台页面时会把前台页面编译成一个前台页面类,该类继承与后台页面类,在整个程序加载时先执行PageLoad方法,然后再过五个方法后调用Render方法生成HTML代码,
   所以PageLoad方法里面的内容在页面的最上面  
第三块
    如何选择ashx和aspx?
        如果要输出大量的 格式化 html代码,则最好选择 aspx。否则,最好选ashx。

当后台业务出现问题,不想生成 前台页面代码时,可以使用Response.End
       强制当前页面执行结束:立即结束代码运行,也就不再生成前台页面的内容了,
       并 立即输出 已经Response.Write的内容
       Response.End();
  再次提醒:表单提交的是 表单内部 带 name属性的 表单元素(input select textarea)

第三部分  Cookie

1.cookie是什么?
   存储在客户端浏览器(客户端硬盘)中的一段数据
2.cookie的作用:
   保存用户的状态信息。(会话跟踪)cookie的主要作用就是用来保存状态的。因为http协议是无状态的,所以要想保存用户的状态信息,就必须自己来实现,可以通过cookie来实现。

3.会话跟踪技术:
  cookie
  session
  cookie和session可以实现跨页面保存用户状态。通过跨页面保存用户状态,就可以跟踪用户访问的页面。
4.ViewState:
  在同一个页面中记录用户状态。(保存用户状态信息)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
5.cookie的特点:
  1> 保存的数据量大小有限制。(根据浏览器而定)
  2〉cookie可以设置有效期。当把有效期设置为已经过期的日期,那么浏览器就会删除这个cookie
  3〉当cookie比较多的时候,浏览器可以自行决定删除某些cookie
  4〉用户可以直接通过浏览器清楚cookie,所以在程序员编程的时候不要太依赖cookie
  5〉因为cookie是存储在客户端的,所以有安全性问题(不要存储密码)
  6〉cookie是与域名相关的(***很重要***)。所以在下次访问相同域名的网站时,浏览器会自动携带该域名下的cookie一起访问。
  7〉cookie是与浏览器相关的
  8〉cookie中保存数据也是以键值对的方式来保存的。  
  9〉如果写入了两个相同的键的cookie,那么后写入的会覆盖先写入的内容。
  10〉一般情况 设置cookie都必须要设置有效期,否则当关闭浏览器时会立即消失
  11〉可以通过服务器端使用c#语言来写cookie,也可以通过客户端js来写cookie,但是无论使用哪种方式,最终都是通过浏览器来操作cookie   
6.Cookie的位置有两种
    Cookie是存储在浏览器端缓存里面(无失效时间)或浏览器硬盘里面(有失效时间)

第二天 ado.net, asp.net ,三层笔记的更多相关文章

  1. [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库

    此为文章备份,原文出处(我的网站)  [.NET 4.5] ADO.NET / ASP.NET 使用 Async 和 Await 异步 存取数据库 http://www.dotblogs.com.tw ...

  2. Asp.Net 三层架构之泛型应用

    一说到三层架构,我想大家都了解,这里就简单说下,Asp.Net三层架构一般包含:UI层.DAL层.BLL层,其中每层由Model实体类来传递,所以Model也算是三层架构之一了,例外为了数据库的迁移或 ...

  3. ADO.NET Entity Framework学习笔记(3)ObjectContext

    ADO.NET Entity Framework学习笔记(3)ObjectContext对象[转]   说明 ObjectContext提供了管理数据的功能 Context操作数据 AddObject ...

  4. 2强类型DataSet (2011-12-30 23:16:59)转载▼ 标签: 杂谈 分类: Asp.Net练习笔记 http://blog.sina.com.cn/s/blog_9d90c4140101214w.html

    强类型DataSet (2011-12-30 23:16:59) 转载▼ 标签: 杂谈 分类: Asp.Net练习笔记 using System; using System.Collections.G ...

  5. 强类型DataSet (2011-12-30 23:16:59)转载▼ 标签: 杂谈 分类: Asp.Net练习笔记 http://blog.sina.com.cn/s/blog_9d90c4140101214w.html

    强类型DataSet (2011-12-30 23:16:59) 转载▼ 标签: 杂谈 分类: Asp.Net练习笔记 using System; using System.Collections.G ...

  6. ASP.NET学习笔记(3)——用户增删改查(三层)

    说明(2017-10-6 11:21:58): 1. 十一放假在家也没写几行代码,本来还想着利用假期把asp.net看完,结果天天喝酒睡觉,回去的票也没买到,惨.. 2. 断断续续的把用户信息的页面写 ...

  7. ASP.NET三层架构的分析

    BLL   是业务逻辑层   Business   Logic   Layer DAL   是数据访问层   Data   Access   Layer ASP.NET的三层架构(DAL,BLL,UI ...

  8. 新闻公布系统 (Asp.net 三层架构 )

    2012年度课程设计---新闻公布系统(小结)                                                                             ...

  9. asp.netmvc 三层搭建一个完整的项目

    接下来用 asp.net mvc 三层搭建一个完整的项目: 架构图: 使用的数据库: 一张公司的员工信息表,测试数据 解决方案项目设计: 1.新建一个空白解决方案名称为Company 2.在该解决方案 ...

随机推荐

  1. 【JAVA】Runtime

    1.内存管理:Java提供了无用单元自动收集机制.通过totalMemory()和freeMemory()方法可以知道对象的堆内存有多大,还剩多少.Java 会周期性的回收垃圾对象(未使用的对象),以 ...

  2. 网站开发常用cmd命令

    一.Windows服务安装: framework 4.0 : cd C:\Windows\Microsoft.NET\Framework\v4.0.30319 framework 2.0 :  cd ...

  3. vim基本命令

    vim基本命令     1.vim#在命令行中输入vim,进入vim编辑器2.i#按一下i键,下端显示 --INSERT--#插入命令,在vim中可能任意字符都有作用3.Esc#退出i(插入)命令进行 ...

  4. Oracle EBS Setup

    1. Prevent close other forms after close original form

  5. 不修改代码就能优化ASP.NET网站性能的一些方法

    阅读目录 开始 配置OutputCache 启用内容过期 解决资源文件升级问题 启用压缩 删除无用的HttpModule 其它优化选项 本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不 ...

  6. Thinking in Java——笔记(12)

    Error Handling with Exceptions The ideal time to catch an error is at compile time, before you even ...

  7. 【运维工具】Git代码发布系统

    引言 代码发布系统是互联网公司必备的运维系统,作用主要用户发布业务代码 到 业务服务器 为什么需要代码发布系统 有的同学可能说,我们公司服务器就那么一台,做个发布系统太麻烦了? 不认同这说法 发布系统 ...

  8. 关于swap函数传值的问题

    #include <stdio.h> void swap(int * p3,int * p4); int main() {  int a = 9;  int b = 8;  int * p ...

  9. phpexcel 导出 科学计数问题

    今天在用php做excel导出的时候遇到了一个小问题,如图 单元格默认格式为常规格式,当数值过长时就会变成科学计数. 解决方法: 如果输出的excel的$data数据是手动添加的,那就在对应值得后面添 ...

  10. 解决点击cell时,UILabel的背景颜色消失的问题

    -(void)setSelected:(BOOL)selected animated:(BOOL)animated{ [super setSelected:selected animated:anim ...