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

首頁 > 學院 > 開發設計 > 正文

asp.net面試基礎題

2019-11-14 16:39:49
字體:
來源:轉載
供稿:網友

WebSite和Webapplication的區別
1)當改變后臺代碼時,WebApplication需重啟瀏覽器或者重新生成解決方案,而WebSite則不用;
2)WebSite沒有Solution,沒有namespace,不利于工程化開發。
HTTP的工作方式是什么?
1)客戶端提交表單請求處理 Request
2)服務器端處理程序進行處理 Handle
3)服務端相應 Response
注意:提交到服務器的表單元素一定要添加name屬性,因為服務器只認name,這一點和Jquery、DOM不一樣,它們只會識別id.
Form的method屬性指定表單的提交方式的問題 *
1)get(默認值)是通過地址欄的URL顯式地傳遞表單;
post傳遞的表單值是隱藏在Http報文中,URL地址欄中是看不到的;
2)get傳遞值的數量是有限的,會受到地址欄長度的影響,好像最大是2K個字節,而post則沒有限制。
3)post當刷新頁面時,會有瀏覽器提示重新提交表單的對話框,而get則沒有。
DIV中的內容不會提交給服務器?
只有給div設置了name屬性的value值(如input、textarea、select等)才會被提交到服務器
ViewState原理
1)隱藏一些字段,用來存放那些沒有value屬性值的控件
2)因為http是無狀態的協議,所以當頁面發生改變的時候,會用viewstate保持頁面上一次的狀態。
3)例如:label控件被瀏覽器渲染成<span>標記,所以label的值就存在了viewstate中;
同理,textbox控件也被瀏覽器渲染成了input標記,TextBox中的值不用存,因為TextBox本質上就是input,input自己會提交給服務器,不需要隱藏字段。
4)可以通過ViewStateDecoder工具查看viewstate中的容的本來面目。
狀態信息保存在隱藏字段中(viewstate)的優缺點
1)加大網站流量
2)降低訪問速度
3)機密數據放到表單中會有數據欺騙等安全性問題(如網銀等)。*
所有的后臺程序實現的都是IhttpHandler接口
Cookie和session都是用來存放當前客戶端的相關數據,
cookie存放在客戶端,session存放在服務器端。
注意:session中不能保存太大的數據,它存的是object類型的數據,所以使用時需要進行類型裝換。
http請求報文時,頁面中的每類元素,如img、js、CSS等文件都是單獨請求的。這一點可以通過開發者工具或者大名鼎鼎的Firebug查看。
*http是"無狀態"的協議,所以它不會記得上一次做過什么,不會記得上次給瀏覽器發過**信息,所以當它下次重新請求時,img、js、css等文件會重新發來header信息。
get是通過url地址欄傳送的參數顯式地傳遞的,如: ?a=123&b=abc
post是不通過url傳值的,但是它在后臺悄悄地傳送數據 ,用__VIEWSTATE隱式地傳送。
HTTP各種狀態碼 含義
1)200系列,表示請求成功,OK
2)300系列,如307,表示服務器重定向,需要對請求做進一步處理;
3)400系列,如404,表示頁面未找到,file not found.
4)500系列,表示內部服務器錯誤。
后臺寫刪除按鈕提交事件是,要在Button控件中的OnClientClick屬性中加上
<input type="submit" name="delete" value="刪除" OnClientClick="return confirm('確定要刪除嗎?')" />
可以在客戶端提示友好地操作者,以免進行不必要的刪除。
127.0.0.0是回環地址,表示訪問本機,不經過網卡,無法在外地訪問,別名為localhost。
0.0.0.0 表示任意ip,AnyIP.
將Html、js轉換為普通一對一字符
HttpUtility.HtmlEncoder(string s) // 轉換為特殊字符,例如:小于號<轉為&lt; 大于號> 轉化為&gt; 空格符轉換為&nbsp;
/表示網站的根目錄;
..表示上級目錄;
.表示當前目錄;
~特殊路徑,只用于服務器控件中,表示從應用的根目錄開始定義。
將虛擬路徑轉化為全路徑,絕對路徑
VirtualPathUtility,ToAblolute("~/a/b.html"); // 轉換為 /WebSite/a/b.html
服務端控件必須用post方法提交form。
可以利用ClientID獲取客戶端控件的ID,
getElementById('<% =TextBox1.ClientID %>');
并不是每個服務端控件的ID和客戶端的控件ID都一樣,例如:在用戶自定義控件(WebUserContrl.ascx)中服務端控件的ID會和客戶端的ID不一樣。
服務端控件label會在客戶端渲染成<span>, 如果設置AssociateControlID屬性為TextBox1,在客戶端則會渲染成 <label for="TextBox1" . . ./ >,實現關聯控件獲得焦點。
Literal控件在客戶端什么都不渲染,以純文本的形式展現。
當設置其Mode屬性為EnCode時,該控件會自動實現HttpUtility.HtmlEncoder(string s)轉換,有時候很方便,同時可以避免XXS攻擊。
TextBox控件
1)設置TextMode屬性為SingleLine,會渲染成 <input type="text" />
2)設置TextMode屬性為MultiLine,會渲染成 <textarea />
3)設置TextMode屬性為PasWord,會渲染成 <input type="password" />
4)當設置AutoPostBack 屬性為true時,用戶焦點離開TextBox就會造成頁面的post;提交表單時最好用__doPostBack的js方法。

RadioButton控件會在客戶端渲染成<input type="radio" />,和服務端控件一樣,也可以通過GroupName屬性盡心分組。
Button控件會在客戶端渲染成<input type="submit" />
LinkButton控件會在客戶端渲染成<a href="javascript:__doPostBack" />
ImageButton控件是一個可以設置ImageUrl的Button,它會在客戶端渲染成<input type="image" />
相同點:都可以把OnClientClick屬性設置為"return confirm('確定要刪除嗎?')";
Panel控件會在客戶端渲染成DIV,如果設置了它的GroupingText屬性,則會渲染成<fieldset><legend>這樣設置</legend></fieldset>,也就是GroupBox的效果。
Hyperlink控件會在客戶端渲染成<a />標記。
可以設置屬性NavigateUrl=""和Target="",若設置ImageUrl屬性,則會渲染成<a href=""><image /></a>.
FileUpload控件會在客戶端渲染成<input type="file">.
一般上傳文件的代碼這樣寫
if(FileUpload1.hasFile())
{
string uploadPath = Server.MapPath("~/upload/");
FileUpload1.SaveAs(uploadPath + FileUpload1.FileName);
}
總的來說,控件共分為三種:
1)HTML控件
2)asp.net服務端控件
3)有runat="server"的HTML控件
驗證控件
1)RequireFieldValidator:必填字段,可進行服務端的非空校驗,常用屬性有:ErrorMessage, ControlToValidate, InitialValue. 在服務端驗證時可以這樣寫if(this.IsValide){…}
2)RangeValidator:判斷值是否在給定的最大值(MaximumValue)和最小值(MinimumValue)之間,可比較的數據類型有string, int , currency.
3)CompareValidator:用于比較兩個值的關系是否滿足要求的或者指定類型的數據。比較操作符有:<,>,=,!= .常用屬性:ValueToCompare:與哪個值比較,ControlToCompare:與哪一個控件進行比較。
4)RegularExPRessionValidator:用于驗證數據滿足的正則表達式。常用屬性:ValidationExpression:定義正則表達式。
5)CustomValidator:用于特殊情況的自定義驗證。
6)注意:(1)幾乎所有的驗證控件都得在客戶端和服務端進行校驗。
(2)給驗證控件進行分組:ValidationGroup
(3)是否觸發校驗事件:CauseValidation:false,表示不觸發驗證事件
(4)修改驗證控件是否占位:Display設置成Dynamic或者Static.
數據綁定
1)例如:<ItemTemplate><%#Eval("Id")%></ ItemTemplate >
2)Repeater數據控件用于綁定數據的遍歷顯示,當然,我們也可以用foreach語句手寫。
3)Repeater控件的其它模板
(1)<AlternatingItemTemplate>設置隔行的不同風格,也就是偶數行的風格。
(2)<HeadTemplate>和<FootTemplate>頭部尾部的模板,分別顯示在數據的前面和后面,比如可防止<table></table>或者<ul></ul>等。
(3)<SeperatorTemplate>,兩項數據之間的分隔符。
數據庫中只存放圖片的路徑,ResolveClientUrl("~/images/ + url");
放在<ItemTemplate>模板中的控件無法直接在后臺c#代碼中操作,得先通過ID找到控件,如:e.Item.FindControl("txtName");
Repeater控件一般只用來展示數據,而ListView控件用來實現增刪改產操作更方便一些。
Eval()是單向綁定,用于讀取數據庫中的數據;Bind()是雙向綁定,即能把數據庫中的值讀到頁面上,也能把用戶的值傳到數據庫中。
ListView控件的注意事項:
(1)自動生成的樣式要提煉到css樣式中,不要做成內聯式的;
(2)<ItemTemplate>里面一般沒必要用<asp:Label>控件展示只讀數據,直接輸出就可以。
(3)<LayoutTemplate>中必須有一個id為itemPlaceHolder的服務端控件。將表頭自動生成的英文字段改成漢語,沒用的ID要刪除,沒必要展示出來。
在ItemDataBound事件中應注意:
(1)判斷數據行的類型 e.Item.ItemType == ListViewItemType.DataRow
(2)取得對應的RowView ListViewDataItem lvDataItem = (ListViewDataItem)e.Item; DataRowView rowView = (DataRowView)lvDataItem.DataItem;
(3)在用FindControl時應注意 AlternatingItemTemplate問題。
ListView和GridView的區別
(1)GridView只能渲染成Table
(2)ListView既能渲染成Table,也能渲染成<ul><li>
DropDownList控件綁定SelectedValue屬性,如:SelectedValue="<%#Eval('txtName')%>"
如果在頁面前端不涉及增刪改查等交互信息的純展示頁面,可以禁用ViewState,有兩種方法:
(1)頁面整體禁用ViewState:在頂部<page>標簽內加EnabelViewState="false"
(2)對指定控件禁用ViewState:在該控件的屬性上添加EnabelViewState="false"
網站性能調優
(1)緩存Cache是網站性能調優的第一個手段;
(2)索引Index是數據庫性能調優的第一個手段;
設置頁面緩存的方法:在頁面頭部區域<page>中設置<%@ OutputCache Duration="20" VaryByParam="none"(這項是可變的,可設置為參數:id;num;age等)%>
數據緩存的設置方法,針對ObjectDataSource設置屬性,
(1)EnableCaching="True"
(2)CacheDuration="20"

1.!ispostback() 是否是第一次加載
2.所有類型基類 Object
3.config 鏈接字符串
<connectionStrings>
<add name="con" connectionString="Data Source=ip地址;Initial Catalog=數據庫名稱;User ID=用戶名;PassWord=密碼" providerName="System.Data.SqlClient"/>
</connectionStrings>
4.ADO.NET5個基本對象
5.OA 辦公自動化 ERP企業資源管理 WMS倉庫管理系統 MIS信息管理系統 crm客戶關系管理
6.頁面傳值的方式
get 查
post 改
put 增
delete 刪
7.class的默認訪問類型 internal
8.ADO.NET中的五個主要對象
Connection 物件
Connection 對象主要是開啟程序和數據庫之間的連結。 沒有利用連結對象將數據庫打開,是無法從數據庫中取得數據的。這個物件在ADO.NET 的最底層,我們可以自己產生這個對象,或是由其它的對象自動產生。

Command 物件
Command 對象主要可以用來對數據庫發出一些指令,例如可以對數據庫下達查詢、新增、修改、刪除數據等指令,以及呼叫存在數據庫中的預存程序等。這個對象是架構在Connection 對象上,也就是Command 對象是透過連結到數據源


DataAdapter 物件
DataSetCommand 對象主要是在數據源以及DataSet 之間執行數據傳輸的工作,它可以透過Command 對象下達命令后,并將取得的數據放入DataSet 對象中。這個對象是架構在Command對象上,并提供了許多配合DataSet 使用的功能。在Beta 2 版中DataSetCommand 物件會更名為DataAdapter。

DataSet 物件
DataSet 這個對象可以視為一個暫存區(Cache),可以把從數據庫中所查詢到的數據保留起來,甚至可以將整個數據庫顯示出來。DataSet 的能力不只是可以儲存多個Table 而已,還可以透過DataSetCommand 對象取得一些例如主鍵等的數據表結構,并可以記錄數據表間的關聯。DataSet 對象可以說是ADO.NET 中重量級的對象,這個對象架構在DataSetCommand 對象上,本身不具備和數據源溝通的能力;也就是說我們是將DataSetCommand 對象當做DataSet 對象以及數據源間傳輸數據的橋梁。

DataReader 物件
當我們只需要循序的讀取數據而不需要其它操作時,可以使用DataReader 對象。DataReader對象只是一次一筆向下循序的讀取數據源中的數據,而且這些數據是只讀的,并不允許作其它的操作。因為DataReader 在讀取數據的時候限制了每次只讀取一筆,而且只能只讀,所以使用起來不但節省資源而且效率很好。使用DataReader 對象除了效率較好之外,因為不用把數據全部傳回,故可以降低網絡的負載。
9./// 說明注釋


大題
1.string stringbuilder區別
string 重復申請內存
stringbuilder 擴展內存

2.四種訪問修飾符
public同一程序集中的任何其他代碼或引用該程序集的其他程序集都可以訪問該類型或成員。
private只有同一類或結構中的代碼可以訪問該類型或成員。
protected只有同一類或結構或者派生類中的代碼可以訪問該類型或成員。
internal同一程序集中的任何代碼都可以訪問該類型或成員,但其他程序集中的代碼不可以。
protected internal同一程序集中的任何代碼或其他程序集中的任何派生類都可以訪問該類型或成員。

3.viewstate ,Session, cookie
ViewState只存在當前頁面
Session 保存在服務期端,在內在的變量地址不同,每個用戶都有一個,不同界面都可以獲取,但是內存空間有限,容易丟失。
cookie 保存在客戶端。其它與Session相同。

 

常用sql語句

INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
DELETE FROM 表名稱 WHERE 列名稱 = 值
SELECT column_name(s) FROM table_name WHERE column_name LIKE pattern
SELECT column_name(s) FROM table_name WHERE column_name IN (value1,value2,...)
SELECT DISTINCT 列名稱 FROM 表名稱
DROP TABLE 表名稱


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 孝感市| 大余县| 大英县| 博兴县| 中方县| 文山县| 阿合奇县| 都江堰市| 吉林市| 鱼台县| 刚察县| 新营市| 县级市| 涿鹿县| 和田县| 靖远县| 雷山县| 郯城县| 独山县| 开平市| 卢湾区| 平阴县| 伊宁县| 依安县| 上林县| 湟源县| 山丹县| 合江县| 雷波县| 崇仁县| 枣庄市| 隆尧县| 旬邑县| 鹤山市| 吴忠市| 镇平县| 绥江县| 石景山区| 鹤岗市| 克什克腾旗| 博客|