Asp.Net细节性问题精萃

来源:互联网 发布:阿里云ecs怎么连接ftp 编辑:程序博客网 时间:2024/05/23 19:12

1.<%=...%>与<%#... %>的区别:
   答:<%=...%>是在程序执行时调用,<%#... %>是在DataBind()方法之后被调用

2.控件接收哪些类型数据?
      答:接收Bind的控件,一般有DropDownList,DataList,DataGrid,ListBox这些集合性质的控件,而被捆绑   的主要是ArrayList(数组),Hashtable(哈稀表),DataView(数据视图),DataReader这四个,以后我们就可以   对号入座,不会出现DataTable被捆绑的错误了:)

3.DataBind,获得的数据,系统会将其默认为String,怎样转化为其它的类型?
  DataBinder.Eval(Container.DataItem,"转换的类型","格式")
  最后一个"格式"是可选的,一般不用去管他,Container.DataItem是捆绑的数据项,"转换类型"指的是    Integer,String,Boolean这一类东西.

4.主要命名空间:
  <% @ Import Namespace="System.Data" %>    处理数据时用到
  <% @ Import Namespace="System.Data.ADO" % >  使用ADO.net ; 时用到
  <% @ Import Namespace="System.Data.SQL" %>   SQL Server 数据库专用
  <% @ Import Namespace="System.Data.XML" %>   不用看处理XML用到
  <% @ Import Namespace="System.IO" %>   处理文件时用到
  <% @ Import Namespace="System.Web.Util" %>   发邮件时大家会用到
  <% @ Import Namespace="System.Text" %>    文本编码时用到

5.Connections(SQLConection 或者 ADOConnection)的常用属性和方法:
  | ConnectionString 取得或设置连结数据库的语句
  | ConnectionTimeout 取得或设置连结数据库的最长时间,也是就超时时间
  | DataBase 取得或设置在数据库服务器上要打开的数据库名
  | DataSource 取得或设置DSN,大家不会陌生吧:)
  | Password 取得或设置密码
  | UserID 取得或设置登陆名
  | State 取得目前联结的状态
  | Open() 打开联结
  | Close() 关闭联结
  | Clone() 克隆一个联结。(呵呵,绵羊可以Connection我也可以)
 示例:
     SQLConnection myConnection = new SQLConnection();
     myConnection.DataSource = "mySQLServer";
     myConnection.Password = "";
     myConnection.UserID = "sa";
     myConnection.ConnectionTimeout = 30;
     myConnection.Open();
     myConnection.Database = "northwind";
     myConnection.IsolationLevel = IsolationLevel.ReadCommitted
6.Command常用的方法和属性
   | ActiveConnection 取得或设置联结Connections
   | CommandText 执行的SQL语句或储存过程(StoredProcedure)名
   | CommandTimeout 执行的最长时间
   | CommandType Command操作的类型(StoredProcedure,Text,TableDirect)三种,默认Text
   | Parameters 操作储存过程时使用
   | Execute() 执行SQL语句或储存过程
   | ExecuteNonQuery() 同上,区别在于不返回记录集
   | Clone() 克隆Command
  示例:
     string mySelectQuery = "SELECT * FROM Categories ORDER BY CategoryID";
     stringmyConnectString="userid=sa;password=;database=northwind;server=mySQLServer";
     SQLCommand myCommand = new SQLCommand(mySelectQuery);
     myCommand.ActiveConnection = new SQLConnection(myConnectString);
     myCommand.CommandTimeout = 15;
     myCommand.CommandType = CommandType.Text;< /FONT >

7.打开和关闭数据库两种方法:
      1.MyConnection.Open();    //打开联结
        MyConnection.Close();
      2.MyCommand.ActiveConnection.Open();
        MyCommand.ActiveConnection.Close() 

8.使用DataSet,在数据库中增加、修改、删除一个数据
      a.添加数据
            DataRow dr=MyDataSet.Tables["UserList"].NewRow();
            dr["UserName"] = "周讯";
            dr["ReMark"] = "100";
            dr["Comment"] = "漂亮MM";
            MyDataSet.Tables.Rows.Add(dr);

      b.修改数据
            MyDataSet.Tables["UserList"].Rows[0]["UserName"]="飞刀大哥";

      c.删除数据
            MyDataSet.Tables["UserList"],Rows[0].Delete();

      d.恢复数据
            if(MyDataSet.HasErrors)
             {
               MyDataSet.RejectChanges();
             }
     
      e.探测DataSet是否有改动
            if(MyDataSet.HasChanges)
             {
                //保存代码
             }else{
                //因为没有变化,所以不用保存,以节省时间
             }

      f.更新数据库
            MyComm.Update(MyDataSet);   //更新数据库中所有的表
            MyComm.Update(MyDataSet,"UserList");  //更新某个表
9.DataGrid实现分页功能
     AllowPaging="True"   //是指允许分页,这个是最主要的。有了它,我们才能分页。
     PageSize="5"         //是指定每页显示的记录数,如果不写,就会默认为10条。
     PagerStyle-HorizontalAlign="Right"  //是指定分面显示的定位,默认是Left

     PagerStyle-NextPageText="下一页"    //把<>改为上一页和下一页字符串
     PagerStyle-PrevPageText="上一页"

     PagerStyle-Mode="NumericPages"       //把<>改为123数字显示
10.显示一共有多少页,并且报告当前为第几页
     当前页是:<font color=red><%=DataGrid1.CurrentPageIndex+1%></font><br>
     总页数是:<font color=red><%=DataGrid1.PageCount%></font><br>
11.个性化分页
     程序员大本营之"亲密接触ASP.Net(14)"有完整代码

12.要将页面重置为有效的状态
 IValidator val;
        foreach(val in Validators)
         {
            Val.IsValid = true;
         }
13.重新执行整个验证序列   
        IValidator val;
        foreach(val in Validators)
         {
            Val.Validate();
         }
14.禁用客户端验证
 <%@ Page Language="c#" clienttarget=downlevel %>
15.Repeater、DataList和DataGrid控件用途"
     这些控件可以简化几种常见的 Web 应用程序方案,包括报表、购物车、产品列表、查询
 结果和导航菜单。  Repeater是唯一允许在其模板中存在 HTML片段的控件.
16.Server.Execute("another.aspx")和Server.Transfer("another.aspx")区别:
       Execute是从当前页面转移到指定页面,并将执行返回到当前页面
 Transfer是将执行完全转移到指定页面
17.XML文件中可以自己存有架构,也可以存在于*.xsl文件中,但必须通过xmlns属性在xml文档的根节点中指定该信息,如下所示:
 <rootelement xmlns="x-schema:scheduledSchema.xsl">
18.XML文件的读取
 FileStream myfs=new Filestream(Server.MapPath("xmldtagrid.xml"),FileMode.Open,FileAccess.Read);
 StreamReader myreader=new StreamReader(myfs);
 DataSet myds=new DataSet();
 myds.ReadXml(myreader);
19.正则表达式 控件RegularExpressionValidator
 符号   含义
 ^   指定检查开始处
 $   指定检查结束处
 []   检查输入的值是否与方括弧中的字符之一相匹配
 /W   允许输入任何值
 /d{}   "/d"指定输入的值是一个数字,{}表示已指定数据类型的出现次数
 +   表明一个或多个元素将被添加到正在检查的表达式
    示例:电子邮件格式(具有@号,且以.com/.net/.org/.edu结尾) 
     validationexpression="^[/w-]+@[/w-]+/.(com|net|org|edu)$"
20.DataGrid控件中数据操作重要语句:
 属性:DataKeyField="userid"  //设userid为表的主键,无法将该字段的值更新到数据库,最好设表的主键为DataGrid的主键
 SqlCommand.Parameters["@userid"].Value=dg.DataKeys[(int)e.Item.ItemIndex]; //检索所要更新的行的主键(将当前选定的行的               主键值赋给命令的一个参)数
 SqlCommand.Parameters["@fname"].Value=((TextBox)e.Item.Cells[2].Controls[0]).Text; //为参数赋予已修改的行值
21.自定义控件:
 a.用户控件(ASP创建页面一样)
  (I).  创建页面,拖入控件,设置属性/方法.   <% @Control Language="C#" Debug="True" %>中的@Control指令来定义此页         将包含控件代码
  (II)  保存为*.ascx文件,如a.ascx.
  (III).使用: 头<%@Register Tagprefix="MyFirstControl" TagName="MyLbl" Src="a.axcs" %>
    //Tagprefix为控件的前缀,像ASP:TextBox中的ASP
    //TagName用于指定自定义控件的名称
    //Src指定控件文件源
      身体:<MyFirstControl:MyLbl runat="Server" id="AllMine" MyText="成功了" />    
 b.使用C#创建自定义控件
  (I). 创建纯代码文件,继承基类Control,并保存为*.cs,如a.cs.
  (II).将代码编译生成程序集: csc /t:library /r:System.dll,System.Web.Dll a.cs 
      //library告诉C#编译器生成程序集
      //  /r:System.dll System.Web.Dll告诉C#编译器引用指定的程序集
  (III).将生成dll文件放在bin目录中
  (IV).使用: <% @Register TagPrefix="Mine" Namespace="MyOwnControls" Assembly="a" %>
22.复合控件注意事项:
 public class MyCompositin:Control,INamingContainer   //INamingContainer:如果在页面上有多个此控件实例,则此结口可以给每         {}           //个实例有唯一标志

 this.EnsureChildControls();//表示将复合控件的子控件都呈现到页面上,此方法检查服务器控件是否包含子控件

 CreateChildControls
23.Button/LinkButton/ImageButton/HyperLink什么时候用?
         1.Button和ImageButton用于将数据传递回服务器.
         2.Hyperlink用于在页面之间导航
         3.LinkButton用于将数据保存到服务器或访问服务器上的数据
24.跟踪调试
     跟踪:
 1.页级别跟踪: 在页的开头包括如下的页指令<%@ Page Trace="True" TraceMode="SortByCategory/SortByTime" %>
  自定义消息:
        Trace.Write("这里为要显示的字符串");
        Trace.Warn("这里为要显示的字符串");   //与Trace.Write相同,只是字体为红色
                检查是否使用了跟踪
        例句: if(Trace.IsEnabled) { Trace.Warn("已启用跟踪")}   
 2.应用程序级别跟踪: 在Web.config文件的<System.Web>节中 <trace enabled="true" pageOutput="true"/>
25.设置缓存:
 1.输出缓存:
            I.页面设置: 将  <%@ OutputCache Duration="120" VaryByParam="none" %>  加在需要缓存页的开头 
                               注释:在请求该页的后两分钟之内,输出内容不变
     II.编程方式设置:
                   主要使用类System.Web.HttpCachePolicy类下的方法
         (1). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));  //在此方法中必须指定到期时间,如本语                                                                                       //句为两分钟
         (2). Response.Cache.SetExpires(DateTime.Now.AddSeconds(120));
                            Response.Cache.SetSlidingExpiration(true);  //"可调到期",主要用于那些开始访问量大,但随后访问                                                                              //量平衡的情况
                            功能:第一句设置缓存到期时间,第二行打开 sliding expiration(可调到期).
         2.数据缓存:
               (1).DataView mySource; (2).给mySource赋值;
               (3).Cache["myCache"]=mySource; (4).mySource=(DataView)Cache["myCache"]
26.部署: 直接复制到产品服务器即可 复制语句: XCOPY <source_path> <destination_path> //XOPY只接受物理路径,不接受虚拟路径

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 防晒喷雾弄衣服上有荧光怎么办 剑网3重置版删除后有残留怎么办 在超市买到变质的水果怎么办 微信官方电话一直打不通怎么办 对方欠货款股东换了不还怎么办 闲鱼买的东西确认收货有问题怎么办 不让微信好友看到吃鸡的名字怎么办 金鹰贵宾积分卡过期了怎么办 小宝机器人一直停在联网界面怎么办 手机版的有道云笔记忘记邮箱怎么办 钡灌肠复查钡剂排空不良怎么办 两个月宝宝灌肠后不排便怎么办 一岁宝宝肠套叠灌肠后拉肚子怎么办 苹果手机自带的天气没有了怎么办? 衣服在洗衣机里忘记拿出来怎么办 苹果se手机系统占内存太大怎么办 客人把饭店老板打了民警怎么办 商场嫌品牌低端不让入驻怎么办 带着孩子坐飞机座位不在一起怎么办 公司老板跑路了员工该怎么办 超市买的衣服防盗扣忘记取了怎么办 在超市买的衣服那个扣没取怎么办啊 超市散称商品条码老记不住怎么办 app账号密码忘记了怎么办注销难 幼儿老师遇到家长比较孩子该怎么办 发的微信公众号内容重复了怎么办 招嫖诈骗微信转账被骗怎么办 朋友在深圳龙岗被传销骗了要怎么办 怀疑家里人被传销组织骗去了怎么办 怀疑家人被骗进传销了该怎么办 b本扣3分了怎么办2018 抖音里面就剩人头的视频怎么办 自学参加普通高考那小高考怎么办 如果小学生长胸只长了一个该怎么办 脸上毛多导致的毛孔粗怎么办 吃了激素药头发掉的厉害怎么办 剪发的剪子中间的螺丝扣总掉怎么办 染完头发后一段时间长新头发怎么办 睡觉头发老被老公压着怎么办 漆盖关节不自在怎么办?吃什么好 摆床头的位置后面是弧形位怎么办