ASP.Net學習筆記(絕對是筆記)

1 配置方法--直接將配置文件複製到服務器上,不需要手動再配置
 web.config
 <?xml version="1.0" encoding="utf-8" ?>
 <configuration>

 <system.web>

 <!-- 動態調試編譯
 所以應該只在調試時將該值設置爲 true,而所有其他時候都設置爲false
 -->
 <compilation defaultLanguage="vb" debug="true" />

 <!-- 自定義錯誤信息
 設置 customErrors mode="On" 或 "RemoteOnly" 以啓用自定義錯誤信息,或設置爲 "Off" 以禁用自定義錯誤信息。
 爲每個要處理的錯誤添加 <error> 標記。
 -->
 <customErrors mode="RemoteOnly" />

 <!-- 身份驗證
 此節設置應用程序的身份驗證策略。可能的模式是 /“Windows/”、
 /“Forms/”、/“Passport/”和 /“None/”
 -->
 <authentication mode="Windows" />


 <!-- 授權
 此節設置應用程序的授權策略。可以允許或拒絕用戶或角色訪問
 應用程序資源。通配符:"*" 表示任何人,"?" 表示匿名
 (未授權的)用戶。
 -->
 <authorization>
 <allow users="*" /> <!-- 允許所有用戶 -->

 <!-- <allow users="[逗號分隔的用戶列表]"
 roles="[逗號分隔的角色列表]"/>
 <deny users="[逗號分隔的用戶列表]"
 roles="[逗號分隔的角色列表]"/>
 -->
 </authorization>

 <!-- 應用程序級別跟蹤記錄
 設置 trace enabled="true" 以啓用應用程序跟蹤記錄。如果 pageOutput="true",則
 跟蹤信息將顯示在每一頁的底部。否則,可以通過從 Web 應用程序根瀏覽 "trace.axd" 頁來查看
 應用程序跟蹤日誌。
 -->
 <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true" />


 <!-- 會話狀態設置
 默認情況下,ASP.NET 使用 cookie 標識哪些請求屬於特定的會話。
 如果 cookie 不可用,則可以通過將會話標識符添加到 URL 來跟蹤會話。
 若要禁用 cookie,請設置 sessionState cookieless="true"。
 -->
 <sessionState
 mode="InProc"
 stateConnectionString="tcpip=127.0.0.1:42424"
 sqlConnectionString="data source=127.0.0.1;user id=sa;password="
 cookieless="false"
 timeout="20"
 />

 <!-- 全球化
 此節設置應用程序的全球化設置。
 -->
 <globalization requestEncoding="utf-8" responseEncoding="utf-8" />

 </system.web>
 </configuration>

2 數據庫--用DataSet來代替RecordSet
 過去,RecordSet("字段名").
 現在,DataSet.Tables("表名").

3 數據庫控件:DataGrid、Repeater、DataList

4 過去使用HTML中提供的表單控件,現在用ASPX提供的各種WEB控件,只要服務器中有

5 支持事件處理,基本的Page_load(頁面被調用時)、Page_unload(頁面被釋放時),在服務器上觸發

6 ASPX中有兩種主要的Server控件,WEB控件、HTML控件

7 ASP使用的是VBscript語言,ASPX使用的是c#語言(大小寫敏感)

8 組成
 ASP.Net Web Form  ASPX
 ASP.Net Web Service  ASMX
 ASP.Net Application  

9 使用類似JSP的二次編譯技術

10 註釋使用<%----%>

11 使用<% @ Import Namespace="???.Data" %>來包含Namespace

12 Request對象是System.Web 這個Namespace中的類HttpRequest
   使用Request.QueryString("var")要比Request("var")快

13 GET方法只能傳遞256字節的數據,POST方法只能傳遞2M的數據
   POST方法比GET方法要安全

14 獲取當前程序所在虛擬路徑Request.ServerVariables["PATH_INFO"]
   獲取當前程序所在絕對路徑Request.ServerVariables["PATH_TRANSLATED"]
   注:Server.MapPath方法可以將虛擬的轉爲絕對的

15 Request.Browser 用來獲得客戶端瀏覽器的信息 等同ASP中的BrowserCapabilities組件
 Request.Browser.Version
 Request.Browser.Cookies……

16  Request.TotalBytes 請求內容的大小
 Request.UserHostAddress 用戶的IP
 Request.UserHostName 用戶的主機名
 Request.UserHostLanguage 用戶的使用語言

17 Response 對象是System.Web 這個Namespace中的類HttpRponse

18  Response.ContentType="text/html"
 Response.Clear() 清除緩存中的HTML信息(不包括頭信息)
 Response.ClearContent() 清除緩存中的HTML信息(包括頭信息)
 Response.ClearHeaders() 只刪除頭信息
 Response.Expires = number 設置顯示的信息在Cache中失效的時間長度,按分鐘計
 Response.ExpiresAbsolute = Data Time 同上
 Response.Buffer = Boolean
 Response.Flush() 立即輸出緩存中的內容
 Response.End() 結束程序的執行
 
 Response.Write ("一定要有括號")//注意在ASP.NET 必須要在輸出字符串上加括號
 Response.BinaryWrite() 不將內容轉換爲字符串,直接輸出(比如圖片的二進制信息,通過這個方法可以直接顯示圖片)
 Response.WriteFile("C://mytest.txt") 直接寫入文件,文件必須存在

17 Server 對象是System.Web 這個Namespace中的類HttpServerUtility
 
 Server.HtmlEncode  將HTML代碼轉換成不會執行的HTML標籤符號
 Server.HtmlDecode  同上,逆操作
 Server.MapPath  將虛擬路徑轉換爲絕對路徑  例:Server.MapPath(".")+"//讀取當前目錄文件.txt"
 Server.Transfer(path)  執行所指的程序,並終止當前程序
 Server.Execute(path)  執行所指的程序,執行完畢後,繼續執行當前程序

-------->HTML控件

18 HtmlInputFile控件,可以解決文件上傳的問題
   利用HtmlPostedFile類,該類存在於System.Web,該類可以通過HtmlInputFile控件的PostedFile屬性,或Response.Files數組來得到

   上傳多個文件,利用Response.Files

19 HtmlForm控件屬性
   Action  Form提交的接受程序
   Enctype  提交內容的編碼類型
   Method  提交請求的方式
   Name    Form的名字
   Target  提交目標的窗口的名字
   一個程序中只能有一個HtmlForm控件

20 HtmlTable、HtmlTableRow、HtmlTableCell

21 HtmlSelect
   
22 所有的Web控件都具有保值的特性,部分HTML控件也具有這個特性

   普通的html標籤,只要加上id和runat="server"就變爲了html控件
   比較通用的HTML控件屬性,InnerHtml,InnerText
   style屬性  定義HTML標籤樣式的方法同樣適合於定義HTML控件,也可以用style屬性集合
   .Style["color"] = "#000000"
   .Style["fontstyle"] = "italic"
   Attributes屬性  控件的屬性值和屬性可以通過Attributes任意指定
   Control.Attributes["attributename"] = Value

<--------HTML控件

--------->WEB控件

23 Web控件比HTML控件來的抽象,標籤爲 <asp:控件名 id="控件ID" 屬性名="控件屬性" runat="server" />

24 AdRotator控件
   <asp:AdRotator id="IDName" AdvertisementFile="Data.xml" runat="Server" />

25 Calendar控件
   <asp:Calendar id="IDName" runat="Server" />
   包含的屬性有:TitleSytle、TitleFormat、NextPrevFormat、SelectionMode、SelectedDate、SelectedDates

   當NextPrevFormat="CustomText"時可以使用這兩個屬性NextMonthText、PrevMonthText
   當SelectionMode的值不同時,可以賦值SelectWeekText、SelectMonthText屬性

   事件OnSelectionChanged、OnDayRender

26 Button控件
   Button類Web控件都包含屬性:CommandName;CommandArgument
   包含事件:OnClick、OnCommand

27 CheckBox控件
   包含屬性:Checked、AutoPostBack(是否自動提交,爲FALSE時不觸發事件)、Text
   包含事件:OnCheckedChanged、OnClick

28 CheckBoxList控件  可以看做是CheckBox控件的集合,用<asp:ListItem></asp:ListItem>定義一個子項
   子項的屬性 .Items[i].Selected
   屬性:RepeatColumns一行顯示幾個、RepeatDirection顯示排列方向、RepeatLayout 排版設計格式(Table、Flow)

29 RadioButton與RadioButtonList控件 與 兩個CheckBox控件類似
   注意,當多個RadioButton一起使用時,要設置GroupName屬性,以保證一組中只有一個按鈕被選中

30 Image控件  略
   ImageButton控件
   事件:onmouseover、onmouseout、onclick

31 LinkButton 屬於Button類控件,其連接由事件處理來完成
   支持 OnClick  OnCommand  

32 DropDownList控件
   DropDownList.Items.add(ItemText)//添加的Item的Value和Text相同
   DropDownList.Items.Add(new ListItem(ItemText,ItemValue))
   OnSelectedIndexChanged  改變選擇屬性事件
   AutoPostBack      自動提交屬性

33 PlaceHoder 與 Panel 的不同之處是其包含的子控件操作必須用代碼來實現

34 當所有需驗證的控件均通過驗證後,Page中的IsValid屬性將會設置爲true
   當使用IsValid屬性前,要先調用Validate()方法,以保證驗證信息發送到Page對象,使驗證生效

35 驗證控件  
 RequiredFieldValidator    驗證是否填寫

 CompareValidator    比較兩個控件的值<ControlToValidate> Operate <ControlToCompare>關係是否符合驗證條件
         比較控件與某個值<ControlToValidate> Operate <ValueToCompare>關係是否符合驗證條件
         驗證是否爲某種類型Operator="DataTypeCheck"、Type="Integer"

 RangeValidator      驗證某值是否在規定的範圍內
         MinimumValue、MaximumValue、MinimumControl、MaximumControl

 RegularExpressionValidator  利用ValidationExpression屬性(正規表達式),驗證是否包含某些字符

 CustomValidator      設定客戶端和服務器端的驗證函數,ClientValidationFunction(客戶端)、OnServerValidate(服務器端)
         先調用客戶端,再調用服務器端

 ValidationSummary    在驗證失敗時顯示所有驗證控件的ErrorMessage屬性
         HeaderText屬性、DisplayMode屬性、ShowMessageBox屬性
         如果要屏蔽客戶端的驗證,需要在網頁中輸入<% Page Language="C#" ClientTarget="DownLevel" %>
36 控件樣式
 Web控件有一個CssClass屬性,可以設置自定義的CSS樣式
 HTML控件Web控件都可以用Style屬性來設置控件樣式
 Web控件可以用ApplyStyle方法來設置控件的樣式,參數爲Style對象變量

<---------WEB控件

--------->用戶控件

37 用戶控件的實現效果類似HTML中的iFrame,用戶控件存放在.ascx文件中
   不可以在控件文件ascx中使用htmlform控件,除非可以保證調用該控件的頁面中不存在htmlform(基本不可能)
   用戶控件中的代碼,不能包含<% Page %>
   使用一個用戶控件時,首先在文件頭部聲明該控件<% @ Register TagPrefix="名字空間" TagName="控件名稱" Src="*.ascx"%>
       然後在要引用該控件的地方寫<名字空間:控件名稱 runat="server" />  

38 編寫控件屬性的方法
public string Show
{
 get
 {
   return 。。。。;//獲取屬性值時觸發  
 }
 set
 {
   。。。。 = value;//設置屬性值時觸發
 }
}
注意屬性設置必須用public修飾符

39 編寫控件的事件處理
編寫控件的事件處理,必須在控件內部完成,也就是必須寫在ascx文件中
編寫控件的事件時不能使用public修飾符,因爲用戶控件的事件是不能對外公開的
<script Language="C#" runat="server">
void Button_Click(Object sender,EventArgs e)
{
 show.Text = "提交事件處理完畢";
}
</script>
<asp:Button id="submit" Text="提交" OnClick="Button_Click" runat="server" />

40 通過代碼創建用戶控件
UserControl uc = (UserControl)LoadControl("UserControl4.ascx");//聲明用戶控件變量
((UsercontrolCS)uc).Show = "此控件是通過程序代碼創建的";//控件類型UsercontrolCS時在ascx文件中指定的
((UsercontrolCS)uc).Color = "Blue";//設置控件屬性
Page.Controls.Add(uc);//將用戶控件件加入Page頁面



<---------用戶控件

---------->DataBind
綁定數據包含在<%#%>標籤內,這些代碼只有在Databind()方法被調用時才執行
Page以及所有的Server控件都具有Databind()方法
對於容器而言,當父親執行DataBind()時,其所有孩子也執行DataBind()

41 公共變量綁定、控件屬性綁定、集合綁定(綁定的集合必須支持IConnection接口)、綁定表達式

<----------DataBind

---------->Ado.Net
42 主要對象 Connection、Command、DataAdapter
   又分爲OleDB用的的OleDBConnection、OleDBCommand、OleDBDataAdapter(兼容性較好2003-8-4)
   Sql server專用的SqlConnection、SqlCommand、SqlDataAdapter

43 兩個Connection對象具有相同的屬性和方法
 ConnectionString連接字符串
 DataBase打開的數據庫
 DataSource打開的數據庫連接實例
 Open
 Close

44 OleDBConnection的使用
 OleDBConnection MyConn = new OleDBConnection();
 MyConn.ConnectionString='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://DataBase//db1.mdb;'

45 SqlConnection的使用
 SqlConnection MyConn = new SqlConnection();
 /*連接字符串一*/MyConn.ConnectionString='user id=sa;password=123456;initial catalog=northwind;data source=mySqlserver;Connect Timeout=0'
 /*連接字符串二*/MyConn.ConnectionString='server=(local);database=mydatabase;Trusted_Connection=yes;'

46 兩個Command對象都具有的屬性和方法
 Connection使用的Connection對象實例
 CommandText執行的SQL語句或存儲過程名
 CommandType執行語句的類型(StoredProceduce、TableDirect、Text)
 Parameters參數集合(主要用在存儲過程中)
 ExecuteReader執行SQL,返回DataReader對象
 ExecuteNonQuery執行SQL,返回影響記錄數

   OldDBCommand myComm = new OldDBCommand('SQL語句',Connection對象);

47 兩個DataReader對象具有的屬性和方法
 FieldCount記錄的字段總和
 IsClosed
 Close
 Getstring以String類型返回指定列中的值
 GetValue以自身類型返回指定列中的值
 GetValues返回當前記錄中所有字段值的集合
 Read將指針指向下一記錄

48 DataSet 在對Dataset進行操作時,影響的僅僅是DataSet中存儲的數據
   只有在使用了DataAdapter.Update(MyDataSet)方法後,這些操作纔會影響數據庫

49 DataSet的使用
 MyDataGrid.DataSource = MyDataSet;
 //綁定設置方法二  MyDataGrid.DataSource = MyDataSet.Tables["內部表名"].DefaultView
 //綁定設置方法三  MyDataGrid.DataSource = MyDataSet.Tables[0].DefaultView
 MyDataGrid.DataMember = "內部表名";//指定綁定的是該DataSet中的哪個表
 MyDataGrid.DataBind();

 添加
   DataRow myDataRow = MyDataSet.Tables["內部表名"].NewRow();
   myDataRow["Name"] = ...;
   MyDataSet.Tables["內部表名"].Rows.Add(myDataRow);
 修改
   DataRow myDataRow = MyDataSet.Tables["內部表名"].Rows[0];
   myDataRow["Name"] = ...;
 刪除
   DataRow myDataRow = MyDataSet.Tables["內部表名"].Rows[0];
   myDataRow.Delete();

 事務
   if (DataSet.HasErrors)
   {
     DataSet.RejectChanges();
   }
   else
   {
     DataSet.AcceptChanges();
   }


50 DataAdapter使用(注意,DataAdapter使用的Connection對象,不必Open)
 //方法一
 OleDbDataAdapter MyAdapter = new OleDbDataAdapter();
 MyAdapter.SelectCommand.Connection = ...
 MyAdapter.SelectCommand.CommandTExt = ...
 //方法二
 OleDbDataAdapter MyAdapter = new OleDbDataAdapter(strselect,objectconnection);//只用於查詢

51 DataAdapter的方法
 MyAdapter.Fill(MyDataSet,起始記錄行號,需要的記錄數,"在DataSetzhon表名")//設置起始點的參數,可用於分頁
 MyAdapter.Update(MyDataSet,"在DataSetzhon表名")(注意:在使用這個方法時要使用OleDbCommandBuilder對象來產生SQL語句)
   OleDbCommandBuilder custCB = new OleDbCommandBuilder(MyAdapter);
   CommandBuilder對象可對單個表的數據改變自動產生SQL語句
<----------Ado.Net

52 DataGrid(WEB控件),將數據以表格的形式表現
 <sap:DataGrid id="DataGridName" runat="server" />

 屬性
 AutoGenerateColumns是否自動產生列,如果設爲TRUE,則會將所有的數據顯示出來
 如果要使用自定義字段名,則該屬性必須爲FALSE

 自定義顯示普通列
 BoundColumn  <asp:BoundColumn HeaderText="ShowText標題" DataField="FieldName" />
 自定義顯示超鏈列
 HyperLinkColumn <asp:HyperLinkColumn HeaderText="標題"
           Text="直接設置超鏈顯示的文字"
           DataTextField="超鏈顯示的字段"
           DataNavigateUrlField="與超鏈有關的字段"
           DataNavigateUrlFormatString="設置超鏈的顯示格式,其中{0}表示DataNavigateUrlField=字段"
         />
 自定義顯示按鈕列
 ButtonColumn <asp:ButtonColumn HeaderText="標題"
           Text="按鈕的文字(需要在DataGrid中添加OnItemCommand屬性)"
           ButtonType="PushButton|LinkButton"
         />
 自定義顯示編輯按鈕列
 EditCommandColumn <asp:EditCommandColumn HeaderText="標題"
            EditText="編輯(需要在DataGrid中添加OnEditCommand屬性)"
            UpdateText="更新(需要在DataGrid中添加OnUpdateCommand屬性)"
            CancelText="取消(需要在DataGrid中添加OnCancelCommand屬性)"
            CommandName=""
            CommangArgument=""
            ButtonType="PushButton|LinkButton"
         />
 自定義顯示模板列
 <asp:TemplateColumn HeaderText="標題">
   <ItemTemplate>
     ………………
   </ItemTemplate>
   <HeaderTemplate>
     ………………
   </HeaderTemplate>
   <FooterTemplate>
     ………………
   </FooterTemplate>
   <EditTemplate>
     ………………
   </EditTemplate>
 </asp:TemplateColumn>

Example:
 <asp:DataGrid id="DG_New" runat="server" AutoGenerateColumns="False" OnItemCommand="DataGrid_ItemCommand">
 <Columns>
   <asp:BoundColumn HeaderText="光盤名稱" DataField="CD_Name" />
   <asp:HyperLinkColumn HeaderText="光盤類型" DataTextField="CD_Type" DataNavigateUrlField="CD_Type" DataNavigateUrlFormatString="ShowMore.asp?name={0}" />
   <asp:ButtonColumn HeaderText="標題" Text="按鈕的文字" ButtonType="PushButton" />
   <asp:EditCommandColumn HeaderText="操作區" EditText="編輯" UpdateText="更新" CancelText="取消" ButtonType="PushButton"  />
 </Columns>
 </asp:DataGrid>

53 DataGrid和分頁有關的屬性
 AllowPaging是否允許進行分頁
 AllowCustomPaging是否只調用顯示所需要的數據(要配合VirualItemCount使用)如果爲True則翻頁按鈕功能失效
 VirtualItemCount設置記錄的總數
 PageSize每頁的容量
 OnPageIndexChanged頁面切換時觸發的事件
 CurrentPageIndex當前的頁碼
 PagerStyle-Mode="NextPrev|NumericPages"  按鈕的水平對齊方式
 PagerStyle-PrevPageText上一頁按鈕的文字
 PagerStyle-NextPageText下一頁按鈕的文字
 PagerStyle-HorizontalAlign按鈕的水平對齊方式  

54 DataGrid和排序有關的屬性
 AllowSortint允許排序
 OnSortCommand

55 Repeater(WEB控件),通過重複列表來顯示數據
 <asp:Repeater id="MyRepeater" runat="server" >
   <HeaderTemplate>
     Repeater控件的標頭模版<br>
   </HeaderTemplate>
   <ItemTemplate>
     ………………
   </ItemTemplate>
   <FooterTemplate>
     ………………
   </FooterTemplate>
   <AlternatingTemplate>
     從0開始記數,對奇數項單獨進行定義
   </AlternatingTemplate>
   <SeparatorTemplate>
     自定義分隔符
   </SeparatorTemplate>
 </asp:Repeater>

56 DataList(Web控件),Repeater的增強版
 <asp:DataList id="MyRepeater"
   RepeatLayout="Table|Flow"
   RepeatDrection="Horizontal|Vertical"//佈局方向
   RepeatColumns="1"//一行中顯示記錄的個數
   HeaderStyle-BackColor="標題顏色"
   AlternatingItemStyle-BackColor="奇數項顏色"
   SelectedItemStyle-BackColor="選中項顏色"
   OnItemCommand="觸發選擇事件"
   OnEditCommand="觸發編輯事件"
   OnUpdateCommand="觸發更新事件"
   OnCancelCommand="觸發取消事件"
   runat="server"
 >
   <HeaderTemplate>
     Repeater控件的標頭模版<br>
   </HeaderTemplate>
   <ItemTemplate>
     ………………
   </ItemTemplate>
   <FooterTemplate>
     ………………
   </FooterTemplate>
   <AlternatingTemplate>
     從0開始記數,對奇數項單獨進行定義
   </AlternatingTemplate>
   <SeparatorTemplate>
     自定義分隔符
   </SeparatorTemplate>
   <SelectedItemTemplate>
     點擊顯示詳細信息時顯示的內容
     使用CommandName="select"的事件可以觸發OnItemCommand
   </SelectedItemTemplate>
   <EditItemTemplate>
     點擊編輯時顯示的內容
     使用CommandName="edit"的事件可以觸發OnItemCommand
   </EditItemTemplate>
 </asp:DataList>

57 ASP.Net中的Session可以不依賴Cookies支持,做法:
 在Web.config或Machine.config中寫入
 <sessionState
   cookieless="true"
 />

58 HttpCookie類
   寫入cookie的值
 HttpCookie cookie = new HttpCookie("cookie變量名")
 cookie.Value = "…………"//設置單值的cookie
 cookies.Values.Add("變量KEY","變量值")//設置多個值的cookie
 Response.AppendCookie(cookie)//完成寫
   讀取cookie的值
 HttpCookie mycookie = Request.Cookies("cookie變量名")

59 ViewState用於保持同一頁面,在多次提交打開時的參數,相當於一個頁面級的Session,也就是隻要沒有離開當前頁面,ViewState的值都會保存
   例如:顯示的數據的排序字段,顯示數據的頁數,查詢的關鍵字等
 ViewState["ViewState變量名"] = "ViewState變量值";  

60 Globa.asax必須存放在當前應用的根目錄下,具有7個事件
 public void Application_Start(Object sender,EventArgs E)
 {}

 public void Application_End(Object sender,EventArgs E)
 {}

 public void Applicaiton_BeginRequest(Object sender,EventArgs E)
 {
   //在每次請求被提出時發生,可用於統計任務
 }

 public void Application_EndRequest(Object sender,EventArgs E)
 {
   //在每次請求結束時
 }

 public void Application_Error(Object sender,EventArgs E)
 {
   //應用程序報錯時觸發
   Context.ClearError();
   Response.Redirect("Err.htm");
 }

 public void Session_Start(Object sender,EventArgs E)
 {
 }

 public void Session_End(Object sender,EventArgs E)
 {
   //當Session  Abandon時發生
 }

---------->文件操作

61 File類常用方法,該類在System.IO名字空間中
 AppendText        創建SreamWriter對象,添加內容,指定文件不存在則自動創建
 Copy(string OrignFile,TargetFile)  (第三個參數表示是否覆蓋,TRUE爲覆蓋)
 Move(string OrignFile,TargetFile)  移動文件到新路徑
 Delete(string strPath)      (注意需要對處理的文件的安全性進行設置,只有完全控制權限纔可以)
 Exists(string strPath)      判斷文件是否存在
 Open(string OpenFileName,FileMode,FileAccess)返回FileStream對象
 OpenRead        只讀方式打開
 OpenText(string strPath)    不支持中文,返回創建的StreamReader對象,讀取指定文本文件內容
 OpenWrite        以讀寫方式打開
 Creat          創建指定文件
 CreatText(string strPath)    返回創建的StreamWriter對象,創建文本文件

62 FileStream類,可以以同步或異步的方式操作文件,可將內容臨時存放在緩存中
 同步Read、Write
 異步BeginRead、BeginWrite
 建立FileStream對象:
 方法一:FileStream MyFS = new FileStream(string OpenFileName,FileMode,FileAccess)
 方法二:FileStream MyFS = File.Open(string OpenFileName,FileMode,FileAccess)
 FileMode:Append、Open、Create、CreateNew、OpenOrCreate、Truncate
 FileAccess:Read、Write、ReadWrite

63 FileStream類常用方法與屬性
 CanRead
 CanWrite
 CanSeek是否支持搜索
 IsAsync是否異步打開模式
 Position當前指針所指文件的位置
 Flush將緩存數據寫入文件
 Lock
 Read從文件讀入緩存區
 ReadByte讀取字節
 Seek設置當前指針所指文件的位置
 Unlock
 Write向流中寫入字節塊
 WriteByte寫入一字節

64 StreamReader 對象讀取FileStream
 StreamReader MySread = new StreamReader(MyStream,Encoding.Default)  //第二個參數是編碼類型,這裏用得是文件自己得編碼類型
 MySread.ReadLine //返回字符串
 MySread.Peek()    //返回值爲-1時,表示已經讀到文件末尾
 MySread.Close()

65 StringBuilder 對象,用於連接字符串
 StringBuilder MyStrBuilder = new StringBuilder()  //將多個字符串聯結
 MyStrBuilder.Append(Tempstr + "<br>")
 MyStrBuilder.ToString()

66 StreamWriter 對象,寫入FileStream
 StreamWriter MySWrite = new StreamWriter(MyStream,Encoding.Default)
 MySWrite.WriteLine("曾經有一份真摯的愛情放在我的面前。")
 MySWrite.Flush()  //將緩衝區的內容寫入文件
 MySWrite.Close()

67 BinaryReader 對象,以二進制的方式讀取入FileStream
 BinaryReader MyBinRead = new BinaryReader(MyStream)
 MyBinRead.ReadByte()  //讀取1 byte的二進制內容,並移動指針
 MyBinRead.BaseStream.Seek(0,SeekOrigin.Begin)  //將讀取文件流指針指向流的頭部
 //第一個參數是指針定位數值,第二個參數是指針定位的相對位置
 MyBinRead.BaseStream.Seek(0,SeekOrigin.End)    //將讀取文件流指針指向流的尾部
 MyBinRead.BaseStream.Length
 MyBinRead.BaseStream.Position
 Close()

68 BinaryWriter 對象,以二進制的方式寫入FileStream
 BinaryWriter MyBinWrite = new BinaryWriter(MyStream);
 MyBinWrite.Write(Mybyte Tbyte)  //寫入二進制內容,並移動指針
 MyBinWrite.BaseStream.Seek(0,SeekOrigin.Begin)  //將寫入文件流指針指向流的頭部
 //第一個參數是指針定位數值,第二個參數是指針定位的相對位置
 MyBinWrite.BaseStream.Seek(0,SeekOrigin.End)    //將寫入文件流指針指向流的尾部
 MyBinWrite.BaseStream.Length
 MyBinWrite.BaseStream.Position
 Close()

69 DirectoryInfo的常用屬性與方法
 Create
 CreateSubdirectories  創建子目錄
 Delete
 Exists
 GetDirectories    獲取當前目錄的子目錄的集合
 GetFiles    獲取當前目錄的文件的集合
 GetFileSystemInfos  獲取當前目錄的文件與子目錄的集合
 MoveTo
 Name
 Parent
 Root
 CreationTemi
 LastAccessTime
 LastWriteTime


70 FileInfo常用方法和屬性
 CopyTo
 AppendText    創建StreamWriter對象,添加新文本
 Create
 CreateText    創建StreamWriter對象,創建一個新文本文件
 Delete
 Exists
 Length
 MoveTo
 CopyTo
 Name
 Extension擴展名
 CreationTemi
 LastAccessTime
 LastWriteTime

<----------文件操作

---------->XML操作

71 XML調用控件
 <asp:Xml id="" DocumentSource="XML文件名" TransformSource="XSL文件名" runat="server" />

   XML調用對象
 XmlDocument  名字空間System.Xml,DOM是XML在內存緩存中的表現形式
   Load()
 XslTransform  名字空間System.Xml.Xsl
   Load()
 XmlTextReader  名字空間System.Xml,將XML中的內容一行行讀取
   XmlTextReader MyReader = new XmlTextreader("xml文件名")
   Read()
   Close()
   NodeType屬性,等於XmlNodeType.Element|XmlNodeType.Text|XmlNodeType.CDATA|XmlNodeType.ProcessingInstruction|XmlNodeType.Comment|XmlNodeType.Document|XmlNodeType.DocumentType|XmlNodeType.EntityReference
   Name
   Value
 XmlTextWrite  名字空間System.Xml,寫入XML的內容
   WriteStartDocument("xml文件名",True|False)
   WriteEndDocument()
   WriteStartElement(string localname)
   WriteEndElement()
   WriteAttributeString(string localName,string Value)
   WriteElementString(string localName,string Value)
   WriteComment(string ...)寫註釋
   Flush()存入文件
   Close()

   Formatting是否縮進格式,值爲 Formatting.Indented|Formatting.None
   Indentation縮進字節
   IndentChar設置縮進的字符

72 用DataSet操作XML
 DataSet對象的ReadXml()方法,得到的數據表名是頁元素的父元素名
 DataSet.ReadXml(Stream stream|TextReader reader|string filename)
 (注意:使用該方法讀XML文件只能讀三層的XML結構;注意:根元素如果有屬性,則也無法正常讀取數據,只會讀根元素)

 DataSet對象的WriteXml()方法,將DataSet中的數據寫回XML文件
 AcceptChanges()
 WriteXml(Stream stream|TextReader reader|string filename)
 Clear()

<----------XML操作

---------->WebService
73 編寫服務器端的webservice(注意webservice支持的解析與返回的數據類型是有限的)
   首先要在首行標明類名,該類名必須與後面指定得類名一致   <% @ WebService Language="C#" Class="類名" %>
   第二步,使用using 來導入名字空間
 using System;
 using System.Web.Services;//這兩個名字空間是必須得
   第三步,創建類
 public class 類名 : WebService
 {
   [WebMethod]//注意如果要使用session對象,必須寫[WebMethod(EnableSession=true)]
   //使用application對象則不需要寫什麼
   public 方法名(..參數.)
   {
   }
 }
74 編寫客戶端的webservice
   首先得到服務器端webservice的WSDL文件,使用wsdl命令,將其轉化爲C#文件
   wsdl /l:cs /n:X_coffeeWebService /out:d:/x_coffee.cs d:/x_coffee.wsdl
        (生成文件類型)          (代理程序的名字空間)
   使用CSC,編譯這個C#文件
   csc /t:library /r:System.dll,System.Web.dll,System.Data.dll /out:d:/xcoffee.dll d:/x_coffee.cs

   將得到的xcoffee.dll放在根目錄的bin目錄下
   在需要調用該webservice的aspx文件中
   <% @ Import Namespace="X_coffeeWebService" %>  引用名字空間
   x_coffee MyCoffee = new x_coffee();      建立類
   MySet = MyCoffee.GetDataSet();      調用類方法

75 WebResponse、WebRequest,所屬名字空間System.Net
 WebResponse
 創建:WebResponse MyRes = MyReq.GetResponse();
 GetResponseStream()  返回Stream對象
 Close()


 WebRequest  
 創建:WebRequest MyReq = WebRequest.Create( "網址" );
 GetResponse()    返回WebResponse對象
 Method屬性    Get Post
 Write(stream)

76 TcpClient,所屬名字空間 System.Net.Sockets
 TcpClient MyTcp = new TcpClient()
 MyTcp.Connect("IP地址或域名",端口號)  無返回值
 Stream MyStream = MyTcp.GetStream();
 MyTcp.Close()

77 Asp.Net中的組件不需要註冊,只要放在bin目錄中就可以使用

78 Trace.Warn("手動添加跟蹤調試信息")

79 Code-Behind
 Inherits  繼承代碼所在類
 Src    代碼文件位置
 在cs文件中必須的幾個名字空間
   using System;
   using System.Web.UI;        包含Page類
   using System.Web.UI.HtmlControls;    包含Html控件
   using System.Web.UI.WebControls;    包含Web控件
 象System.Collection;這種名字空間在aspx中是默認導入的,而在cs文件中就要手動導入
 public class DataListPIndex :Page      表示該類繼承自Page類

80 發送郵件,在System.Web.Mail名字空間中的三個類
 SmtpMail
   SmtpMail.SmtpServer="ms.yellowpage.com.cn"  //設置發送郵件的服務器
   SmtpMail.Send(From,to,subject,message);    //該方法爲Static不需要創建實例來調用
   SmtpMail.Send(MailMessage)
 MailMessage屬性
   From
   To
   Cc    抄送地址
   Bcc    保密抄送地址
   Subject
   Body
   BodyEndoding  編碼方式
   BodyFormail  內容格式  MailFormat.Html MailFormat.Text
   Priority  優先級  High Normal Low
   Attachments  附件
   創建對象  MailMessage MyMsg = new MailMessage()
   發送信  SmtpMail.Send(MyMsg)
 MailAttachment
   new MailAttachment("文件服務器上絕對路徑")      //默認編碼方式UUencode
   new MailAttachment("文件服務器上絕對路徑","文件編碼方式")  //編碼方式UUencode或Base64
   Encoding  只讀,附件編碼方式
   Filename  只讀,附件絕對路徑
   MyMsg.Attachments.Add(new MailAttachment("文件服務器上絕對路徑"));

81 GDI+
 名字空間System.Drawing、System.Drawing.Imaging、System.Drawing.Text

 Bitmap類,用於存儲象素
   Bitmap MyBitmap = new Bitmap ( intWidth,intHeight,PixelFormat.Format32bppArgb )//第三個參數是位圖的象素格式
   MyBitmap.Save(MyStream,ImageFormat.Gif);//第一個參數爲stream類型,第二個參數是圖片的格式,支持有10種格式
   Dispose()

 Graphics類,用於畫圖的畫板
   Graphics MyGraph = Graphics.FromImage( MyBitmap );//該方法爲靜態方法,所以不需要實例調用
   MyGraph.FillRectangle(SolidBrush,Rectangle);//用指定畫筆填充指定區域
   MyGraph.DrawString(string 文字,Font 字體,SolidBrush 畫筆,intX,intY);
   Dispose()

 Rectangle類,定義一個矩形區域
   Rectangle MyRect = new Rectangle(intX,intY,intWidth,intHeight);

 Bursh類,爲抽象類,不能直接調用
 SolidBrush類,定義一個Solid的畫筆
   SolidBrush MyBrushnew = new SolidBrush(bgColor)
 TextureBrush
 LinearGradientBrush

 Color類,定義一個顏色
   Color MyColor = Color.Red;

 Font類,定義一個字體
   Font MyFont = new Font(string 字體名稱,integer 字體大小,FontStyle.Bold);//最後一個參數是字體樣式

 MemoryStream類,一種無緩衝流,將數據保存在內存中,很容易釋放
   MemoryStream MyStream = new MemoryStream();
   MyBitmap.Save(MyStream,ImageFormat.Gif);
   ToArray()

   將完成的圖形輸出
 Response.ClearContent();//清除緩存中的內容
 Response.ContentType = "image/GIF";
 Response.BinaryWrite(MyStream.ToArray());
 Response.End();

82 Stream類
 Stream MyStream = MyTcp.GetStream();
 Write(寫入的2進制數組, 0, Length);//第二個參數是寫入的起始地址,第三個參數是寫入長度

83 ASP與ASP.NET
 ASP        ASP.NET
 Request.Form("Value")    Request.Form["Value"]
 Request.Form("Value")(1)  Request.Form.GetValues("Value")[1]
 Response.Write "可不用括號"  Response.Write("必須要加括號")
 函數定義在<%%>中      函數定義在<script Language="C#" runat="server"></script>

84 VB與VB.Net
 VB        VB.Net
 對變量可以不做聲明      Dim MyName as string '必須聲明變量
 調用某函數時,可以省略call和()  Call ValidateUser("xupeiming","123456")'調用函數時不能省略call和()
 Set MyConn=Server.CreateObject  Dim Myconn
         MyConn=Server.CreateObject("ADODB.Connection")'不使用Set關鍵字
 <%=MyRecordset("Name")%>  <%=MyRecordset("Name").Value  '沒有默認索引值,必須指明是什麼屬性%>
 While .....      While ....
   .....        ....
 Wend        End While
         增加了+=、-=、*=、/= 運算符


<----------WebService




事件傳遞參數對象列表
onClick事件      --EventArgs
onCommand事件      --CommandEventArgs
onClick事件      --ImageClickEventArgs(ImageButton控件)
OnAdCreated事件      --AdCreatedEventArgs(AdRoator控件)
OnDayRender事件      --DayRenderEventArgs(Calendar控件)
OnItemCommand等事件    --DataGridCommandEventArgs(DataGrid控件)
OnPageIndexChanged事件    --DataGridPageChangedEventArgs(DataGrid控件分頁時)

OnItemCommand等事件    --DataListCommandEventArgs(DataList控件) 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章