第二天 ado.net, asp.net ,三層筆記

來源:互聯網
上載者:User

標籤:

1. ado.net步驟:
     一:倒入命名空間
      using System.Data;
      using System.Data.sqlclient;
     二:第一個模型 int  ExecuteNonQuery();返回受影響的行數
      準備連接字串
      準備sql語句
      建立連線物件(sqlconnection)
      建立執行對象 (sqlcommand)
      開啟串連
      執行操作
      關閉
    整合:
      string connStr="server=.;database=機器名或ip或執行個體名;uid=撒;pwd=123(integrated security=true);";
      string sql="";
      int count;
      using(Sqlconnection con=new Sqlconnection(connStr))
     {
           using(SqlCommand cmd=new SQlcommand(sql,con))
          {

            con.open();
             int count=cmd.ExecuteNonQuery();

          }

     }
2.串連池
3.第二個模型
   object ExecuteScalar()  返回查詢的第一行第一列的結果。集體的文法和ExecuteNonQuery()基本一樣
       string connStr="server=.;database=機器名或ip或執行個體名;uid=撒;pwd=123(integrated security=true);";
      string sql="";
      object o;
      using(Sqlconnection con=new Sqlconnection(connStr))
     {
           using(SqlCommand cmd=new SQlcommand(sql,con))
          {

             con.open();
             object o=cmd.ExecuteScalar();

          }

     }
     ExecuteScalar  一般與彙總函式一起使用
4.編寫三層的步驟:(用年齡自動成長的案例來說)
    1.確定需求
       點擊按鈕實現年齡自動增加
    2.根據需求確定sql語句
       update Teacher set age=age+1 where [email protected]
    3. 編寫資料訪問層
       3.1 首先編寫一個操作特定表的資料訪問層的類xxxDAL
           因為有了sql語句,遲早都要執行,所以先編寫執行該sql語句的代碼。注意 執行sql語句的代碼要放在“資料訪問層”
           在資料訪問層中將來可能要執行很多sql語句,不同的sql語句可能操作不同的表,所以我們要為不同的表建不同的類,在某個類中都是關於操作某張表的sql語句
           SqlHelper放到資料訪問層,設定檔放到表現層(UI)
       3.2 編寫具體的執行指定sql語句的方法:1->確定方法的參數(一般sql語句裡有幾個參數那麼該方法就有幾個參數,如果sql要返回多個值時就要建一個Model對象用來封裝某個特定表裡面的所有欄位,Model不屬於任何一層,每個層都可以調用。注意如果有參數就要寫SqlParameter[])  2->確定方法的傳回值(執行完畢sql語句,資料庫返回了什麼,那麼該方法就原樣返回該值,不做任何判斷***)
    4.編寫商務邏輯層
      4.1 首先編寫一個操作特定表的商務邏輯層類xxxBLL
      4.2根據表現層的需求,確定業務訪問層類的方法:1->確定方法的參數  2->確定方法的傳回值

    5.表現層調用業務層實現功能
5.        //當一個方法傳回值是一個集合的時候,一開始首先New一個集合對象,即便集合裡面沒有東西也要返回長度為0的集合,不要返回null
         //當一個方法傳回值是一個對象的時候,一開始可以聲明這個對象,讓這個對象等於null,如果查到了資料就給這個對象執行個體化,最後返回這個對象
第二部分:ASP.NET
 
第一塊  WebForm(.ashx)
1.此處的Write()方法裡面的文本不會被發送到瀏覽器輸出,因為在這裡是用了Redirect(),
  Redirect的內部完全產生一個新的 已規定好的響應報文發給瀏覽器
  context.Response.Write("刪除成功");
  context.Response.Redirect("C02.ashx");  
 2.上傳檔案是瀏覽器端:
     如果要上傳,就必須設定表單method=post,而且enctype=multipart/form-data,
     一旦設定了enctype="multipart/form-data,那麼瀏覽器產生請求報文的時候,就會產生分隔字元
     並且更換請求報文的資料 組織格式(使用分隔字元來分開不同HTML表單控制項的內容
 2.1上傳檔案是伺服器端:
        //接受檔案
         HttpPostedFile file= context.Request.Files[0];
            //判斷上傳上來的圖片還是文字檔
            if(file.ContentLength>0)
            {
               string filename= System.IO.Path.GetFileName(file.FileName);
               //儲存
               file.SaveAs(context.Server.MapPath("/upload/" + filename));
            }
              
第二塊  WebForm(.aspx)
  1.WebForm中 程式員一般在Page_Load中編碼(類似於一般處理常式的PR方法)
   2.webForm程式直接可以右鍵瀏覽器中查看,而且會自動讀模數版
  3. <%--這裡的=相當於Response.Write--%>
       <%=sbtrs.ToString() %>
  4.更重要是在WebForm中前台頁面可以訪問到後台頁面類裡面受保護的全域變數(***也就是說前台頁面是後台頁面的子類,因為只有子類才可以訪問到父類中受保護的成員***)  
  5.在第一次訪問前台頁面時會把前台頁面編譯成一個前台頁面類,該類繼承與後台頁面類,在整個程式載入時先執行PageLoad方法,然後再過五個方法後調用Render方法產生HTML代碼,
   所以PageLoad方法裡面的內容在頁面的最上面  
第三塊
    如何選擇ashx和aspx?
        如果要輸出大量的 格式化 html代碼,則最好選擇 aspx。否則,最好選ashx。

       當後台業務出現問題,不想產生 前台頁面代碼時,可以使用Response.End
       強制當前頁面執行結束:立即結束代碼運行,也就不再產生前台頁面的內容了,
       並 立即輸出 已經Response.Write的內容
       Response.End();
  再次提醒:表單提交的是 表單內部 帶 name屬性的 表單元素(input select textarea)

第三部分  Cookie

  1.cookie是什嗎?
   儲存在用戶端瀏覽器(用戶端硬碟)中的一段資料
2.cookie的作用:
   儲存使用者的狀態資訊。(會話跟蹤)cookie的主要作用就是用來儲存狀態的。因為http協議是無狀態的,所以要想儲存使用者的狀態資訊,就必須自己來實現,可以通過cookie來實現。

3.會話跟蹤技術:
  cookie
  session
  cookie和session可以實現跨頁面儲存使用者狀態。通過跨頁面儲存使用者狀態,就可以跟蹤使用者訪問的頁面。
4.ViewState:
  在同一個頁面中記錄使用者狀態。(儲存使用者狀態資訊)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
5.cookie的特點:
  1> 儲存的資料量大小有限制。(根據瀏覽器而定)
  2〉cookie可以設定有效期間。當把有效期間設定為已經到期的日期,那麼瀏覽器就會刪除這個cookie
  3〉當cookie比較多的時候,瀏覽器可以自行決定刪除某些cookie
  4〉使用者可以直接通過瀏覽器清楚cookie,所以在程式員編程的時候不要太依賴cookie
  5〉因為cookie是儲存在用戶端的,所以有安全性問題(不要儲存密碼)
  6〉cookie是與網域名稱相關的(***很重要***)。所以在下次訪問相同網域名稱的網站時,瀏覽器會自動攜帶該網域名稱下的cookie一起訪問。
  7〉cookie是與瀏覽器相關的
  8〉cookie中儲存資料也是以索引值對的方式來儲存的。  
  9〉如果寫入了兩個相同的鍵的cookie,那麼後寫入的會覆蓋先寫入的內容。
  10〉一般情況 設定cookie都必須要設定有效期間,否則當關閉瀏覽器時會立即消失
  11〉可以通過伺服器端使用c#語言來寫cookie,也可以通過用戶端js來寫cookie,但是無論使用哪種方式,最終都是通過瀏覽器來操作cookie   
6.Cookie的位置有兩種
    Cookie是儲存在瀏覽器端緩衝裡面(無失效時間)或瀏覽器硬碟裡面(有失效時間)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    

第二天 ado.net, asp.net ,三層筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.