Session:
每一臺電腦訪問服務器,都會是獨立的一套session,key值都同樣,可是內容都是不同的web
以上全部內容,都跟cookies同樣,瀏覽器
內置對象:用於頁面之間的數據交互服務器
爲何要使用這麼內置對象?由於HTTP的無狀態性。cookie
Session:在計算機中,尤爲是在網絡應用中,稱爲「會話控制」。Session 對象存儲特定用戶會話所需的屬性及配置信息。這樣,當用戶在應用程序的 Web 頁之間跳轉時,存儲在 Session 對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。當用戶請求來自應用程序的 Web 頁時,若是該用戶尚未會話,則 Web 服務器將自動建立一個 Session 對象。當會話過時或被放棄後,服務器將終止該會話。Session 對象最多見的一個用法就是存儲用戶的首選項。例如,若是用戶指明不喜歡查看圖形,就能夠將該信息存儲在 Session 對象中。有關使用 Session 對象的詳細信息,請參閱「ASP 應用程序」部分的「管理會話」。注意 會話狀態僅在支持 cookie 的瀏覽器中保留。網絡
每一臺電腦訪問訪問服務器,都會是獨立的一套Session,key值都同樣,可是內容都不同的。session
這是與Cookies相同的地方。this
不同:
一、Session的保存位置是保存在服務器上
二、Session沒有持久的,它的保存週期就是20分鐘orm
重點:Session不要濫用,也不要不用,濫用可能會形成服務器內容溢出,不用會形成資源浪費,由於內存中的數據提取及交互是最快的server
賦值:Session["key"] = 值;
取值:string a = Session["key"];
清除: Session["key"]=null;對象
Application:
全局對象
Application["key"] 是全部的用戶獲取這個key裏面的值都是同樣的
沒有保存週期,它會一直保存着
一般在什麼地方使用,版本號
賦值:Application["key"]=值;
取值:Application.Get("key");
ViewState:(做爲了解)
理解成爲病例
Repeater的Command操做:
一、ItemCommand事件 - 在Repeater中全部能觸發事件的控件,都會來觸發這一個事件
二、CommandName - 判斷點擊的是什麼按鈕,e.CommandName
三、CommandArgument - 觸發事件所傳遞過來的主鍵值數據,放在這裏面
界面值綁定時要用 單引號 !!!!!! e.。。。
四、ItemCreated - 項模板中將HTML代碼生成完畢時執行一遍此事件
五、ItemDataBound - 項模板將數據綁定後執行一遍此事件
Response對象:響應請求
Response.Write("<script>alert('添加成功!')</script>");
Response.Redirect("Default.aspx");//重定向到Default.aspx
Request對象:獲取請求
Request["key"]來獲取傳遞過來的值
QueryString:地址欄數據傳遞 ?key=value&key=value
注意事項:不須要保密的東西能夠傳
不要傳過長東西,由於長度有限,過長會形成數據丟失
增長:
在數據鏈接類裏面寫一個增長方法
public bool Insert(Users u)
{
bool isok = false;
cmd.CommandText = "insert into Users values(@a,@b,@c,@d,@e,@f)";
cmd.Parameters.Clear();
cmd.Parameters.Add("@a", u.UserName);
cmd.Parameters.Add("@b", u.PassWord);
cmd.Parameters.Add("@c", u.NickName);
cmd.Parameters.Add("@d", u.Sex);
cmd.Parameters.Add("@e", u.Birthday);
cmd.Parameters.Add("@f", u.Nation);
conn.Open();
try
{
cmd.ExecuteNonQuery();
isok = true;
}
catch { }
conn.Close();
return isok;
}
而後,在web窗體中搭建一下窗體
<form id="form1" runat="server">
<h1>用戶添加</h1>
用戶名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<br />
密碼:<asp:TextBox ID="TextBox2" runat="server" TextMode="Password"></asp:TextBox><br />
<br />
重複密碼:<asp:TextBox ID="TextBox3" runat="server" TextMode="Password"></asp:TextBox><asp:Label ID="Label1" runat="server" Text=""></asp:Label><br />
<br />
暱稱:<asp:TextBox ID="TextBox4" runat="server"></asp:TextBox><br />
<br />
性別:<asp:RadioButtonList ID="RadioButtonList1" runat="server" RepeatDirection="Horizontal" RepeatLayout="Flow">
<asp:ListItem Value="True" Selected="True">男</asp:ListItem>
<asp:ListItem Value="False">女</asp:ListItem>
</asp:RadioButtonList><br />
<br />
生日:<asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>年
<asp:DropDownList ID="DropDownList2" runat="server"></asp:DropDownList>月
<asp:DropDownList ID="DropDownList3" runat="server"></asp:DropDownList>日
<br />
<br />
民族:<asp:DropDownList ID="DropDownList4" runat="server"></asp:DropDownList><br />
<br />
<asp:Button ID="Button1" runat="server" Text="添加" />
</form>
在form表單中把該有的控件都加上,給DropDownList綁定數據,把按鈕的點擊事件委託好
if (!IsPostBack)
{
for (int i = DateTime.Now.Year; i >= 1900; i--)
{
ListItem li = new ListItem(i.ToString(), i.ToString());
DropDownList1.Items.Add(li);
}
for (int i = 1; i <= 12; i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString());
DropDownList2.Items.Add(li);
}
for (int i = 1; i <= 31; i++)
{
ListItem li = new ListItem(i.ToString(), i.ToString());
DropDownList3.Items.Add(li);
}
DropDownList4.DataSource = new NationData().Select();
DropDownList4.DataTextField = "NationName";
DropDownList4.DataValueField = "NationCode";
DropDownList4.DataBind();
}
Button1.Click += Button1_Click;
點擊事件:
Users u = new Users();
u.UserName = TextBox1.Text;
u.PassWord = TextBox3.Text;
u.NickName = TextBox4.Text;
u.Sex = Convert.ToBoolean(RadioButtonList1.SelectedItem.Value);
string date = DropDownList1.SelectedValue + "-" + DropDownList2.SelectedValue + "-" + DropDownList3.SelectedValue;
u.Birthday = Convert.ToDateTime(date);
u.Nation = DropDownList4.SelectedItem.Value;
bool ok = new UsersData().Insert(u);
if (ok)
{
Response.Write("<script>alert('添加成功!')</script>");
Response.Write("<script>this.opener.location.href='Default.aspx';this.close();</script>");
}
else
{
Response.Write("<script>alert('添加失敗!')</script>");
}
添加完成
刪除:
方法:
public void Delete(string Uname)
{
cmd.CommandText = "delete from Users where UserName=@a";
cmd.Parameters.Clear();
cmd.Parameters.Add("@a",Uname);
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
新建一個頁面delete,在主頁面加一個超連接當按鈕用
<a href="Delete.aspx?un=<%#Eval("UserName") %>">刪除</a>
在delete頁面裏咱們用request把Username給傳過來,而後調方法
//一、得到要刪除的主鍵值,username
string Uname = Request["un"].ToString();
//二、刪除
new UsersData().Delete(Uname);
//三、重定向回顯示頁面
Response.Redirect("Default.aspx");
修改:
主界面和添加大體相同
仍是先寫一個修改方法
public bool Update(Users u)
{
bool isok = false;
cmd.CommandText = "update Users set PassWord=@b,NickName=@c,Sex=@d,Birthday=@e,Nation=@f where UserName=@a";
cmd.Parameters.Clear();
cmd.Parameters.Add("@a", u.UserName);
cmd.Parameters.Add("@b", u.PassWord);
cmd.Parameters.Add("@c", u.NickName);
cmd.Parameters.Add("@d", u.Sex);
cmd.Parameters.Add("@e", u.Birthday);
cmd.Parameters.Add("@f", u.Nation);
conn.Open();
try
{
cmd.ExecuteNonQuery();
isok = true;
}
catch { }
conn.Close();
return isok;
}
用和刪除同樣的超連接當按鈕,連接到修改頁面
<a href="Default6.aspx?un=<%#Eval("UserName") %>" target="_blank">修改</a>
登錄狀態保持:
Cookies
在用戶電腦的硬盤上保存的一段文本
http協議包括瀏覽器,容許站點在用戶電腦上以Cookies的形式來臨時保存數據
若是沒有設置保存時間,會話cookies
一、若是你20分鐘內沒有再次刷新頁面,那麼此cookies就會自動刪除掉
二、噹噹前訪問鏈接中斷,如關閉瀏覽器,那麼cookies會自動刪除
做用:保持用戶的登錄狀態