国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Asp.Net學習:細節性問題

2024-07-10 13:11:22
字體:
來源:轉載
供稿:網友

  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-][email protected][/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只接受物理路徑,不接受虛擬路徑

中國最大的web開發資源網站及技術社區,
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泰来县| 新源县| 贵阳市| 南乐县| 方山县| 休宁县| 赣州市| 玉门市| 班玛县| 正定县| 九龙县| 徐闻县| 庄浪县| 武山县| 噶尔县| 石河子市| 郑州市| 卢氏县| 卢龙县| 桃江县| 乡城县| 鱼台县| 京山县| 尼勒克县| 吴堡县| 高青县| 庆云县| 泗水县| 宁德市| 贵州省| 龙口市| 天等县| 小金县| 息烽县| 依兰县| 青神县| 隆化县| 宜川县| 尼勒克县| 阜新| 南皮县|