牛腩—close、dispose、session、ispostback含义

1.close和dispose都是对资源的调整
close:关闭资源,但没有真正的释放资源
dispose:彻底的释放资源

SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=NewSystem;User ID=sa;Password=123456"); 

        con.Open(); 

        con.Close(); 

        con.Open(); 

        con.Dispose(); 

        con.Open();

close里的connection可以重新open,dispose的不行,虽然sqlconnection对象还在,但是因为connectionstring清空了,提示错误,找不到NewSystem,这时如果在dispose后给connectionString重新赋值,就不会报错。
从百科里找的理解是:close()方法可以回滚任何挂起的事务,然后她将连接释放到连接池,或者在连接池被禁用的情况下关闭连接,应用程序可以多次调用close,不会产生任何异常
dispose()方法就相当于清空了值,值为null;

2.session
session是一次浏览器和服务器的交互会话,就像两个人之间打招呼,Hello,hi!这就是一次会话。session就是对这次会话进行存储,在牛腩里登录界面里用到session就是来判断用户是否登陆的。
为什么要来存储判断呢,因当我们打开的网页都用到了http协议,而这个协议是无状态的,每一次请求都和上次没有关系。这个时候,如果我在http://localhost:28414/Login.aspx中登陆,而我在http://localhost:28414/list.aspx中也可以登陆,但list表是login里的一部分,当我list登陆并不能读取login是否登陆,只能去数据库中查询登录状态,这时候就会造成数据库压力。而session,就解决了list和login两次对http的请求关联,让他们产生联系,这两个页面都能读取到我的登陆信息。

3.Ispostback
这个对牛腩老师简单到不想讲的问题,还是理解一下。
Page.IspostBack表示当前请求是否第一次打开,在第一次打开的时候为false,其他时候都是true;
而我们见到的都是if(!Ispostback)用非表示页面首次加载,而if(Ispostback)表示每次都要加载的代码
下面的代码表示只需要加载一次:

  if (!Page.IsPostBack)
            {
                string caid = Request.QueryString["caid"];
                DataTable dt = new NewsManager().SelectByCaId(caid);
                //设置类别名称
                lbl.Text = dt.Rows[0]["name"].ToString();
                //绑定新闻列表
                gvNews.DataSource = new NewsManager().SelectByCaId(caid);
                gvNews.DataBind();
            }
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值