asp.net编程值的注意的一点点东东

来源:互联网 发布:淘宝客服几点上班 编辑:程序博客网 时间:2024/04/30 22:39

                        个人觉得重点的东西

  一:ImageButton/LinkButton(用模板编辑的) url传参数的写法
        PostBackUrl=’<%# “ EditRoom.aspx id=”+<%# Eval(“页面的Id”)%>’

二HyperLinkField(配置数据源的,不用模板的,自带的链接) url传参数的写法
      <asp:HyperLinkField HeaderText="详细" DataNavigateUrlFormatString='~/Admin/AdminBooksDetail.aspx?id={0}'        DataNavigateUrlFields="Id" Text="查看" />
三 删除的时候给个提示信息(在rowDataBound事件里面写)
  if(e.Row.RowType  ==DataControlRowType.DataRow)
         {
             LinkButton btn = (LinkButton)e.Row.FindControl("linkBtnDelete"); 
           btn.Attributes.Add("onclick","javascript:return confirm('"+string.Format("你是否要删除车牌为{0}吗?",DataBinder.Eval(e.Row.DataItem,"busNo"))+"')");
  }

四 使用Sql结合asp.net注意的技巧:
1,如何获取当前时间与数据库表中时间差
其实可以用 sql 语句可以实现这一效果:
  Select datediff(s,”字段名”,getDate()) from 表名
 注释:datediff()是sql里面的一个函数,s指的是所间隔的秒数,getDate()是当前系统时间
2,消除数据库表中某列重复的值,
  使用关键字:distinct
3 采用:ExecuteScalar()改方法是返回数据集的首行首列,如果采用该方法执行,增,删,改,操作,一定要注意,在写sql语句的时候一定要记得使用 (“;select @@IDENTITY”)如:”insert  into  users Values(@userName,@password);select @@indentity”才能确返回受影响的行,否则查询出来的是一个null值,什么东西也没有,但是如果使用ExecuteNoQuery()的时候不要加这(“;select @@IDENTITY”),改方法执行的时候就是返回受影响的行,切记切记

五:使用事务处理多条sql语句
   特点:同时执行多条sql语句,只有两条或多条sql语句同时能执行,并且都执行成功的前提下才能有效的发挥事务的特点,才能提交事务,否则只有当中其中一条sql语句执行失败是,全部失败,回滚事务
  1,首先在 DBhelper里面写个事务,方面外面掉
    A, 事务开始: public void GetBeingTranction
                {  If(con.State==ConnectionState.Close){ con.Open();}
                   Tranction tran=con.BeginTranction()//事务开始
  com.Tranction=tran;//用命令对象对象执行事务 }
    b,  事务提交: public void GetCommit()
              {   com.Tranction.Commit() //提交事务
                   Con.close();//事务提交后,连接关闭
}
  C,事务回滚: public void GetRollback ()
{    com.Tranction.Rollback();//出现问题,和特殊情况,事务回滚
      Con.close();//连接同时也要被关闭
}
  注意:最好是在BLL(业务逻辑里面写,传两实体,分别对实例处理相应才操作,调用DBherper里面事务开始,事务提交,事务回滚的方法,只有两个都正确执行的时候,才能事务提交,否则只有一方出问题,事务就回滚,数据库受影响的行为 0),一定要注意的事基于同一个连接(Con);


                        
               

六:使用视图
使用视图其实很简单,其实你可以将试图看成是一个表,一个虚拟的表,可以对表进行相应的操作,
创建视图:
 Use 数据库
 If exists(select * from sysobjects where =’view_groups’)
       Drop View view_groups
 go
 Create View view_groups
 As
    select 出发城市=StartCity,到底城市=DestiCity,发团时间=StartDate,发出时间=StartTime,价格=price,座位号=seatNo,车牌=BusNo ,订单Id=o.orderId,已定人数='',剩下座位='',总的座位数=Seats,总的座位数的Id=b.BusId,
   from line left join  groups on line.lineid=groups.lineId  left join orders as o on o.groupId=groups.groupid left join bus as b on b.busId=groups.busId
go

2.视图查询:
select * from View_groups 有条件,也可以根据条件去查,很方便的,也可以对视图进行相应的操作,增,删,改,查都可以。
注意:使用视图查询数据库,返回数据集的时候一个要传两个参数 (strSql,strViewName),strSql为sql语句,strViewName为视图的名称:
六:使用存储过程实现分页效果
  使用存储过程分页可以对大量数据的分页,加快程序运行的速度,很方便。

 

 


  七 Ajax:

    var xmlHttp
function CheckName()//检查用户名是否存在
{
  createXMLHTTP();//创建createxmlHttp();
  var url="disp.aspx?Name="+userName;
  xmlHttp.open("GET",url,true);
  xmlHttp.onreadystatechang=checkUserName;
  xmlHttp.send(null);
}
//执行检测用户名的回调函数
function checkUserName()
{
    if(xmlHttp.readyState==4)//判断对象状态
    {
        if(xmlHttp.status==200)//信息成功
 {
      if(xmlHttp.responsetText=="true")
      {
        document.getElemenById("imgName").src="images/true.gif"
        document.getElemenById("butId").distable=false;
      }else
      {
         document.getElemenById("imgName").src="images/false.gif"
      }
 }
    }
}
//创建xmlHttp对象
function createXMLHTTP()
{
   if(window.XMLHttpRequest)
   {
     xmlHttp=new XMLHttpRequest(Msxml2.XMLHTTP);
   }
   else  if(window.ActiveXObject)
   {
     xmlHttp=new ActiveXObject("Micrsoft.XMLHTTP");
   }
   if(!xmlHttp)
   {
     window.alert('xmlHttp对象不存在');
   }
}

 

disp.aspx代码,执行用户的操作
{
   这个页面,执行操作数据库
}

           
      
    

原创粉丝点击