zoukankan      html  css  js  c++  java
  • ASP 笔记

      1 1、迭代器的使用
      2    public class DaysofTheWeek:System.Collections.IEnumerable
      3    {
      4       //定义一周7天
      5      string[] m_Days={"Sun","Mon","Tue","Wed","Thr","Fri","Sat"};
      6       //定义迭代器返回内容
      7      public System.Collections.IEnumerator GetEnumerator()
      8     {
      9       for(int i=0;i<my_Days.Length;i++)
     10       {
     11         yield return m_Days[i];//返回元素值
     12        }
     13      }
     14     }
     15 
     16     protected void Page_Load(object sender,EventArgs e)
     17    {
     18      //创建类的一个对象
     19      DaysOfTheWeek week=new DaysOfTheWeek();
     20      //用foreach遍历并输出结果
     21      foreach(string day in week)
     22      {
     23        Console.Write(day+" ");
     24       }
     25     }
     26 
     27 2、6个验证控件RequiredFieldValidator
     28 
     29    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
     30    <asp:RequiredFieldValidator ID="RequedFieldValidator1" runat="server" 
     31 
     32 ControlToValidate="TextBox1" ErrotMessage="必须输入内容">
     33 
     34 
     35    CompareValidator
     36    <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox1" 
     37 
     38 ControlToValidate="TextBox2" ErroMessage="两个密码不相同">
     39    </asp:CompareValidator>
     40 
     41 3、DataReader类读取数据
     42    Protected static SqlDataReader sdr;
     43    SqlConnection conn=new SqlConnection();
     44    conn.ConnectionString=ConfigrationManager.ConnectionStrings
     45 
     46 ["connectionstrig"].ToString();
     47    conn.open();
     48    SqlCommand cmd=new SqlCommand();
     49    comd.Connection=conn;
     50    cmd.CommandText="Select * form Works";
     51    sdr=cmd.ExecuteReader();//返回数据集    
     52    Response.Write(sdr.FieldCount.ToString());//显示字段数
     53    if(sdr.HasRows)
     54      Response.Write("有记录");
     55    else
     56      Response.Write("无记录");
     57    string str="";
     58    while(sdr.Read())
     59    {
     60      str=sdr.GetString(0)+","+sdr.GetString(1);
     61    }
     62    sdr.Close();
     63    Response.Write(str);//显示结果
     64 
     65 4、SqlParameter表示一个参数,默认情况下是input函数,表示的事输入的参数,就是从程序中读取的
     66 
     67 参数,还有输出参数,具体哪一个还需要通过SqlParameters的属性Direcion属性来表示,三种类型参
     68 
     69 数主要有Input,InputOutput,ReturnValue
     70    //默认打开的连接名为Connection,testproc
     71    SqlCommand command=new SqlCommand("testoroc",connection);
     72    command.CommandType=CommandType.StoredProcedure;//命令类型是存储过程
     73    SqlParameter parameter=command.Parameters.Add("RRTURU_VALUE"),SqlDbType.Int);
     74    //设置存储过程的参数
     75    parameter.Direction=ParameterDirection.ReturnValue;//指定参数类型
     76 
     77    parameter=command.Parameters.Add("@InputParm",SqlDbType.NVarChar,12);\创建一个输入参数
     78    parameter.Value="Test Value";\指定参数的值
     79 
     80    parameter=command.Parameters.Add("@OutputParm",SqlDbType.NVarChar,28);
     81    parameter.Direction=ParameerDirection.OutPut;\指定参数类型为输出参数
     82    connecion.open();
     83    SqlDataReader reader=command.ExecuteReader();\执行获取数据集的命令
     84    reader.close();//关闭打开的阅读器
     85    Response.Write(command.Parameters["@OutputParm"].value);//输出参数和RetrunValue的值
     86    Response.Write(command.Parameters["RETURN_VALUE"].value);
     87 5、适配器表示一组SQL命令和一个数据库连接,用于填充DataSet数据集合更新数据源,用作DataSet和
     88 
     89 数据源之间的桥接器,DataAdapter通过映射Fill和Update这两个方法来提供这桥接器。
     90    string conn="DataSource=.;Initial Catalog=Nothwind;Itergrated Security=True"
     91    string sqlstr="Select * from Catagories";
     92    //利用构造函数,创建DataAdapter
     93    SqlDataAdapter da=new SqlDataAdapter(sqlStr,conn);
     94    DataSet ds=new DataSet();
     95    Da.Fill(ds,"Catagories");
     96    //以下代码将更新到DataSet里的数据
     97    //在DataSet里的名为"Catagories"的DataTable中添加一个用于描述行记录的DataRow对象
     98    DataRow dr=ds.Tables["Categories"].NewRow();
     99    //通过DataRow对象添加一条记录
    100    dr["CategoryName"]="计算机分类";
    101    dr["Description"]="从计算机分类里单独列出来的一个分支";
    102    ds.Table["Categories"].Rows.Add(dr);
    103    //更新到数据库里
    104    SqlCommandBuilder scb=new SqlCommandBuilder(da);
    105    da.Update(ds,"Categories");
    106 6、DataTable workTable=new DataTable("Works");
    107    DataColumn workCol=workTable.Columns.Add("CustID",typeof(Int32));
    108    workCol.AllowDBNull=false;
    109    workCol.Unique=ture;
    110    //添加一列内容
    111    WorkTable.Columns.Add("CustLName",typeof(String));
    112    或者
    113    workTable.Rows.Add(new object[]{1,"Smith","Right",600});
    114    workTable.Rows.Add(new objext[]{1,"Tomas","Edison",900});
    115 7、事务是一个整体操作,共封装了多个操作,一个操作执行不成功,则其他所有的操作都不成功
    116    using(SqlConnection conn=new SqlConnection(connectionString))
    117    {
    118      conn.open();
    119      SqlCommand cmd=connection.CreateCommand();
    120      SqlTransaction trans;
    121      //开始一个本地的事务
    122      trans=connection.BeginTransaction("SampleTransaction");
    123      cmd.Connection=conn;
    124      cmd.Transaction=trans;
    125      try
    126      {
    127        //第一个操作,更新数据
    128        cmd.CommandText="Update moneytable set money=money-200";
    129        cmd.ExecuteNonQuery();
    130       //第二个操作,插入数据 
    131       cmd.CommandText="Insert into moneyhistory values('name',200,'2006-07-04')";
    132       cmd.ExecuteNonQuery();
    133       trans.Commit();
    134       Response.Write("两条语句都执行完毕"); 
    135      }
    136      catch(Exception ex)
    137      {
    138        Response.Write("提交错误类型:{0}".ex.GetType());
    139        Response.Write("出错信息:{0}",ex.Message);
    140          try
    141           {
    142             trans.Rollback();
    143           }
    144           catch(Exception ex2)
    145           {
    146              Response.Write("提交错误类型:{0}".ex.GetType());
    147              Response.Write("出错信息:{0}",ex.Message);
    148            }
    149       }
    150      
    151     }
    152 --------------------------------------------------------------------------------------
    153 8、只能对数据控件内的绑定使用Eval()方法
    154    当数据可以被修改时还是要使用Bind()方法绑定,一般在数据控件的EditItemTemplate模板和
    155 
    156 InsertItemTemplate模板中要使用Bind()函数
    157 --------------------------------------------------------------------------------------
    158 9、ASP.NET的状态管理
    159    Cookie与Session对象类似,Session对象的所有信息保存在服务器上,而Cookie对象的所有信息保
    160 
    161 存在客户机上。
    162    //传给下个页面这个值
    163    Response.Redirect("Update.aspx?id=" + Convert.ToInt32(e.CommandArgument) + "");
    164    获取从页面传来的值Request.QueryString["user"];
    165    ------------------------------------------------------------Cookie的使用
    166    ///写入Cookie
    167    protected void btnWrite_Click(object sender,EventAgrs e)
    168    {
    169      HttpCookies CookieTest=new HttpCookie("Password");
    170      CookieTest.value="TestCookieValue";//设置Cookie值
    171      Response.Write("<p>Cookie已成功写入");
    172     }
    173    //读取Cookie
    174    protected void btnRead_Click(object sender,EventArgs e)
    175    {
    176      string Cookie=Request.Cookies["Password"].Value.ToString();
    177      Response.Write("<p>读出Cookie的值:");
    178      Response.Write("<h3>"+Cookie+"</h3>");
    179     }
    180    ------------------------------------------------
    181    if(Session["test"]!=null)
    182    {
    183      Response.Write(Session["test"].ToString());
    184     }//在另一个页面里也可以用
    185    --------------------------------------------------
    186    要使用回话状态的事件处理程序,可以在Global.asax中添加一个名为Application_Start()和
    187 
    188 Application_End()事件处理程序,来对回话状态进行管理
    189    void Application_Start(object sender,EventArgs e)
    190    {
    191      //当应用程序启动时运行的代码
    192     }
    193    void Application_End(object sender,EventArgs e)
    194    {
    195      //当应用程序关闭时运行的代码
    196     }
    197     还可以在Web应用程序的Global.asax文件中,以直接声明的方式向StaticObjects集合中添加对象
    198     <object runat="server" scope="application" ID="MyApp" PROGID="MyApp.wyf"></object>
    199     然后就可以在应用程序的任何地方通过代码对所定义的应用程序状态访问
    200     Label1.Text=MyApp.Title;
    201 
    202    Application["属性名"]存取公用数据,例如访问人数,网页计数器等不随用户变化的数据。
    203 
    204 10、两种验证模型:身份验证和授权验证
    205     有些用户可以看到工资单,有的用户看不到。
    206     配置身份验证属性
    207     <authentication mode="Forms">//基于窗体的
    208       <forms name=".ASPXAUTH" loginUrl="default.aspx" protection="All" timeout="30"
    209        path="/"//默认路径
    210        requireSSL="false" 
    211        slidingExpiration="UseDeciceProfile" domain=""
    212        enableCrossAppRedirects="false"/>
    213        <credentials passwordFormat="SHAI"/>//密码的加密方式
    214       </forms>
    215        <passport redirectUrl="internal"/>
    216     </authentication>
    217 
    218 11、应用表单验证
    219     <?xml version="1.0"?>
    220     <configuration>
    221     <system.web>
    222      <authentication mode="Forms"/>//将网页的验证模式设置为表单验证
    223      <comlication debug="true">//将程序运行模式设置为调试模式
    224     </system.web>
    225     </configurarion>
    226 
    227 12、窗口验证
    228     <Configuration>
    229      <system.web>
    230       <authentication mode="Windows">//设置验证模式为表单验证模式
    231       <comlication debug="true">//将程序运行模式设置为调试模式
    232      </system.web>
    233     </Configuration>
    234 
    235     protected void Page_load(object sender,EventArgs e)
    236    {
    237      if(User.IsInRole("Administrators"))
    238      {
    239         Response.Write("您具备管理员的资格!<br/>");
    240         Response.Write("您的登录名为:"+User.Identity.Name);
    241       }
    242     }
    243 13、不止一个应用程序要在一台计算机上使用基于窗体的身份验证服务,每个应用程序应配置唯一的
    244 
    245 Cookie值,ASP.NET在设置身份验证时,将/用作path值,使Cookies被送回站点的每个应用程序上
    246    
  • 相关阅读:
    IE9 bug: 在textarea中复制内容会丢失换行符
    [IIS]修改MaxFieldLength与MaxRequestBytes彻底解决Request Too Long的问题
    百年一遇的奇怪问题:当IE遇上.NET Framework 4.5
    Entity Framework 使用注意:Where查询条件中用到的关联实体不需要Include
    cnzz统计代码引起的Bad Request Request Too Long
    看我72变:解决Entity Framework中枚举类型与tinyint的映射问题
    续篇:新型Lamda版Html.RenderAction
    System.Threading.Tasks.Task引起的IIS应用程序池崩溃
    ASP.NET/C# WebRequest POST Google OAuth API
    ASP.NET MVC中加载WebForms用户控件(.ascx)
  • 原文地址:https://www.cnblogs.com/d685600/p/3640098.html
Copyright © 2011-2022 走看看