ASP.NET学习⼼得三:实现简单的登录注册界⾯——基于WebForm模式
引⾔
html和aspx的区别
html是基于HTML的静态⽹页,他的内容褒词不变,其页⾯内容使⽤的仅仅是标准的HTML代码;aspx是ASP.NET页⾯的扩展名,是静态HTML⽹页⾥嵌⼊了动态的指令(这些动态指令使由各种脚本语⾔编写的,是由IIS服务器上脚本引擎来执⾏的)。
开发过程:1.数据库设计;2.配置fig;3.公共类编写;4.模块设计(分为登⼊页⾯实现和注册页⾯实现)
⼀、数据库设计
本实例采⽤SQL Server2012数据库系统建⽴⼀个如下所⽰的数据库
⼆、配置fig
<configuration>
<appSettings>
<add key="ConnectionString"value="server=YXZ-PC;Uid=sa;pwd=***;database=db_Student"/>
</appSettings>
...
</configuration>
三、公共类编写
在项⽬开发过程中,良好的类设计能够使系统结构更加清晰,并且可以加强代码的重⽤性和易维护性,本实例中创建SQLDB.cs,⽤来执⾏各种数据库操作和公共⽅法。
public class SQLDB
{
/// <summary>
/// 连接数据库
/// </summary>
/// <returns></returns>
public SqlConnection GetCon()
{
return new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"].ToString());
}
/// <summary>
/// SqlEx⽅法主要使⽤sqlCommand对象执⾏数据库操作
/// </summary>
/// <param name="cmdstr"></param>
/
// <returns></returns>
public int SqlEx(string cmdstr)
{
SqlConnection con =GetCon();//连接数据库
con.Open();
SqlCommand cmd =new SqlCommand(cmdstr, con);
try
{
cmd.ExecuteNonQuery();//执⾏sql语句并返回受影响的⾏数
return1;
}
catch(Exception ex)
{
return0;
}
finally
{
con.Dispose();//释放连接对象资源
}
}
/// <summary>
/// reDt⽅法通过SQL语句查询数据库中的数据,并将查询结果存储在DataSet数据集中,
/
// 最终将该数据集中存储查询结果的数据表返回,作为数据绑定控件的数据源
/// </summary>
/// <param name="cmdstr">查询语句</param>
/// <returns></returns>
public DataTable reDt(string cmdstr)
{
SqlConnection con =GetCon();
SqlDataAdapter da =new SqlDataAdapter(cmdstr, con);
DataSet ds =new DataSet();
da.Fill(ds);
return(ds.Tables[0]);
}
/// <summary>
/// 执⾏sql查询语句
/// </summary>
/// <param name="str"></param>
/// <returns></returns>
public SqlDataReader reDr(string str)
{
SqlConnection conn =GetCon();
conn.Open();
SqlCommand com =new SqlCommand(str, conn);
SqlDataReader dr = com.ExecuteReader(CommandBehavior.CloseConnection);
return dr;
}
/// <summary>
/// 加密
/// </summary>
/// <param name="strPwd"></param>
/// <returns></returns>
public string GetMD5(string strPwd)
{
MD5 mD5 =new MD5CryptoServiceProvider();
byte[] data = System.Text.Encoding.Default.GetBytes(strPwd);//将字符编码为⼀个字节序列byte[] md5data = mD5.ComputeHash(data);//计算data字节数组的哈希值
mD5.Clear();
string str ="";
for(int i=0;i< md5data.Length-1;i++)
{
str += md5data[i].ToString("x").PadLeft(2,'0');
}
return str;
}
}
四、模块设计
1.登⼊页⾯实现
Login.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Web.Login"%> <!DOCTYPE html>
<html xmlns="/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
asp查看源码配置ui<title>登⼊</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
⽤户名:<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<br />
<br />
密码:<asp:TextBox ID="txtPwd" runat="server" TextMode="Password"></asp:TextBox>
<br />
<br />
<asp:Button ID="btnLogin" runat="server" OnClick="btnLogin_Click" Text="确定"/>
<asp:Button ID="btnRegister" runat="server" OnClick="btnRegister_Click" Text="注册"/>
</form>
</body>
</html>
Login.aspx.cs
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Web_RegistrationAndLogin;
namespace Web
{
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnLogin_Click(object sender, EventArgs e)
{
SQLDB sqldb =new SQLDB();
string userName =UserName.Text.Trim();
string passWord =Pwd.Text.Trim();
//SqlDataReader dr = Dr("select * from tb_User where UserName = '" + userName + "'and PassWord = '" + passWord + "'"); DataTable dt = Dt("SELECT * FROM Table_1 WHERE UserName = '"+ userName +"'AND PassWord = '"+ passWord +"'");
if(dt.Rows.Count>0)
{
Session["UserID"]= dt.Columns["UserID"];//将⽤户的ID存⼊Session["UserID"]中
Session["Role"]= dt.Columns["Role"];//将⽤户权限存⼊Session["Role"]中
Response.Redirect("SimpleResult.aspx");//跳到主页
}
else
{
Response.Write("<script>alert('登录失败!请返回查原因');location='Login.aspx'</script>");
}
}
protected void btnRegister_Click(object sender, EventArgs e)
{
Response.Redirect("Register.aspx");//跳到主页
}
}
}
2.注册页⾯实现
Register.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="Web.Register"%>
<!DOCTYPE html>
<html xmlns="/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>⽤户注册</title>
</head>
<body>
<asp:Label ID="Label1" runat="server" Text="⽤户注册"></asp:Label>
<form id="form1" runat="server">
<div>
<br />
<br />
</div>
⽤户名:<asp:TextBox ID="TextBoxName" runat="server"></asp:TextBox>
<br />
<br />
密码:<asp:TextBox ID="TextBoxPassword" runat="server" TextMode="Password"></asp:TextBox>
<br />
<br />
<br />
性别:<br />
<asp:RadioButtonList ID="RadioButtonListSex" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="male">男</asp:ListItem>
<asp:ListItem Value="female">⼥</asp:ListItem>
</asp:RadioButtonList>
<br />
<br />
职业:<br />
<asp:RadioButtonList ID="RadioButtonListWork" runat="server" RepeatDirection="Horizontal">
<asp:ListItem Value="publicServat">公务员</asp:ListItem>
<asp:ListItem Value="doctor">医务⼯作者</asp:ListItem>
<asp:ListItem Value="teacher">教师</asp:ListItem>
<asp:ListItem Value="business">经商</asp:ListItem>
</asp:RadioButtonList>
<br />
所属省份:<asp:DropDownList ID="DropDownListProvince" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownListProvince _SelectedIndexChanged" >
<asp:ListItem Value="guangdong">⼴东省</asp:ListItem>
<asp:ListItem Value="guangxi">⼴西省</asp:ListItem>
<asp:ListItem Value="heilongjiang">浙江省</asp:ListItem>
</asp:DropDownList>
<br />
<br />
所在城市:<asp:ListBox ID="ListBoxCity" runat="server" Height="43px" Width="102px"></asp:ListBox>
<br />
<br />
爱好:<asp:CheckBoxList ID="CheckBoxListHobby" runat="server" RepeatColumns="2">
<asp:ListItem>球类运动</asp:ListItem>
<asp:ListItem>⽥径运动</asp:ListItem>
<asp:ListItem>读书看报</asp:ListItem>
<asp:ListItem>聊天交友</asp:ListItem>
</asp:CheckBoxList>
<br />
<asp:Button ID="ButtonOk" runat="server" OnClick="ButtonOk_Click" Text="确定"/>
<br />
</form>
</body>
</html>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论