asp.net访问sqlserver获取数据、IsPostBack属性和VS可视化调试的概念
新建一個asp.net網(wǎng)站;sqlserver中有如下一張表;
新建一個頁面, demo1.aspx;在頁面上添加一個GridView控件;
demo1.aspx.cs代碼;
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient;public partial class demo1 : System.Web.UI.Page {protected void Page_Load(object sender, EventArgs e){//IsPostBack只有在第一次打開的時候是false,其它時候都是trueif (!IsPostBack){databind();}}void databind(){SqlConnection conn = new SqlConnection("Data Source=localhost;Initial Catalog=hatcher;User Id=sa;Password=kc123ab;");SqlCommand MyCommand = new SqlCommand("SELECT * FROM advpeoples", conn);SqlDataAdapter SelectAdapter = new SqlDataAdapter();SelectAdapter.SelectCommand = MyCommand;DataSet MyDataSet = new DataSet();conn.Open();SelectAdapter.SelectCommand.ExecuteNonQuery();SelectAdapter.Fill(MyDataSet);GridView1.DataSource = MyDataSet.Tables[0];GridView1.DataBind();conn.Close();} }右擊demo1.aspx,設(shè)為起始頁;然后點(diǎn) 綠三角按鈕,啟動調(diào)試;?
運(yùn)行結(jié)果如下;
需要如下,
? ? ? ? GridView1.DataSource = MyDataSet.Tables[0];
? ? ? ? GridView1.DataBind();
加DataBind(),GridView才顯示數(shù)據(jù);winform則不用加;
當(dāng)頁面第一次加載時,執(zhí)行databind();以后則不需;
ASP.NET中IsPostBack
Page.IsPostBack是一個標(biāo)志:當(dāng)前請求是否第一次打開。?
調(diào)用方法為:Page.IsPostBack或者IsPostBack或者this.IsPostBack或者this.Page.IsPostBack;
1)當(dāng)通過IE的地址欄等方式打開一個URL時是第一次打開, 當(dāng)通過頁面的提交按鈕或能引起提交的按鈕以POST的方式提交的服務(wù)器時,頁面就不再是第一次打開了。(每點(diǎn)擊一次按鈕,都是一次加載)
2)IsPostBack只有在第一次打開的時候是false,其它時候都是true
3).Net判斷一個Page是否第一次打開的方法:Request.Form.Count>0
4)每次頁面Load的時候,根據(jù)需要把每次都要加載的代碼放在IsPostBack中,只需要加載一次的代碼放在if(!IsPostBack)中。
5)每次用戶回傳服務(wù)器任何信息的時候,都會引發(fā)isPostBack屬性用來判斷此用戶是否曾經(jīng)做過登陸或者其他事件
這涉及到aspx的頁面回傳機(jī)制的基礎(chǔ)知識 postback是回傳 即頁面在首次加載后向服務(wù)器提交數(shù)據(jù),然后服務(wù)器把處理好的數(shù)據(jù)傳遞到客戶端并顯示出來,就叫postback, ispostback只是一個屬性,即判斷頁面是否是回傳,if(!Ispostback)就表示頁面是首次加載,這是很常用的一個判斷方式.一個頁面只能加載一次,但可以在加載后反復(fù)postback.
?
在32行下一個斷點(diǎn);啟動調(diào)試;中斷以后,把鼠標(biāo)移到MyDataSet上,這是一個DataSet類型的變量;看下圖,會顯示一個放大鏡;這個放大鏡是VS的可視化調(diào)試;
點(diǎn)擊放大鏡,會彈出表格顯示MyDataSet中表格的數(shù)據(jù);這是在調(diào)試時;
比如,頁面沒有顯示該顯示的數(shù)據(jù);那么中斷以后,查看DataSet中的數(shù)據(jù);如果DataSet中有數(shù)據(jù),則說明可能是網(wǎng)頁顯示代碼的問題;如果DataSet中沒有數(shù)據(jù),則說明可能前面訪問數(shù)據(jù)庫的代碼可能有問題;
這是VS可視化調(diào)試的方便之處;凡調(diào)試時出現(xiàn)放大鏡的,都可以可視化查看;我在C#和VC++中均使用過此可視化調(diào)試,可以想象,在VS中支持的所有語言,凡調(diào)試時出現(xiàn)放大鏡,均可可視化查看;
總結(jié)
以上是生活随笔為你收集整理的asp.net访问sqlserver获取数据、IsPostBack属性和VS可视化调试的概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 学习构建WDF驱动程序 - 初步了解SO
- 下一篇: WPF基础入门 - 1