问题描述
http://zhidao.baidu.com/link?url=DJjq2sxXYkx1cRKIZC0QYwQyQcP9Fj8G8Edk1fXgF7ba13K_1-Nq0m6UXAd0mzVuKUXdtKkYH1w2unGVVdIY8_可以和这个类似但是要访问本地数据库菜鸟一只实在不会啊,先建立一个数据库UserTest。2,在里面建立一个表叫UsersTable,设计表,建立三个列:u_id,u_name,u_pwd。3,u_id是int数据类型,自增1;u_name是nvarchar类型,长度12;u_pwd是varchar类型,长度12,然后保存该表。4,打开表,在第一行u_name输入“abc”,u_pwd输入“abc”。关闭表。5,打开VS,新建一个Web项目。双击默认的default.aspx页面,然后将<body>...</body>替换成下面的代码:HTMLcode<!--替换--><bodystyle="margin:0px"><formid="form1"runat="server"><tableborder="0"cellpadding="0"cellspacing="0"style="width:100%;height:50px"><tr><tdstyle="vertical-align:middle;width:50%;text-align:center;font-weight:bold;font-size:25px;color:#003366;font-family:Arial;">yunleizhilian的登录示范</td><tdstyle="vertical-align:middle;text-align:left"><asp:PanelID="pnlLogin"runat="server"Height="30px"Width="100%">用户名:<asp:TextBoxID="txbUserName"runat="server"></asp:TextBox>密码:<!--对于密码TextBox,应把TextMode属性设置为Password,这样输入的值会以****形式出现,保护密码在输入时不被别人看到--><asp:TextBoxID="txbUserPassword"runat="server"TextMode="Password"></asp:TextBox><asp:ButtonID="btnLogin"runat="server"Text="登录"OnClick="btnLogin_Click"/></asp:Panel><asp:PanelID="pnlWelcome"runat="server"Height="30px"Width="100%"><asp:LabelID="lblWelcome"runat="server"></asp:Label><asp:ButtonID="btnQuit"runat="server"CausesValidation="False"Text="退出"Width="146px"OnClick="btnQuit_Click"/></asp:Panel></td></tr></table><tableborder="0"cellpadding="0"cellspacing="0"style="width:100%;height:100px"><tr><tdstyle="vertical-align:middle;text-align:center"><!--这个用来显示登录是否成功的信息--><asp:LabelID="lblMessage"runat="server"ForeColor="#C00000"></asp:Label></td></tr></table></form></body><!--替换结束-->6,按F7,进入代码视图,在Page_Load()里写下面的代码:C#codeprotectedvoidPage_Load(objectsender,EventArgse){//确保页面是第一次被访问if(!Page.IsPostBack){CheckPageStatus();}}//通过判断Session["UserName"]是否为空检查页面是否已登录(登录成功时会为Session["UserName"]注入值,就不空了。。否则就认为没有登录)。privatevoidCheckPageStatus(){if(Session["UserName"]!=null){pnlLogin.Visible=false;pnlWelcome.Visible=true;lblWelcome.Text="欢迎登录,"+Session["UserName"].ToString()+"同志";}else{pnlWelcome.Visible=false;pnlLogin.Visible=true;}//这个用来接收登录或退出后的信息。个人习惯,你也可以不这么做。if(Session["Message"]!=null){lblMessage.Text=Session["Message"].ToString();Session.Remove("Message");}elselblMessage.Text="";}7,先告一段落,按F5运行下,看看效果,你会发现当没有登录时,“退出”那部分没有显示。真神奇啊。8,然后关闭这个IE页面,按VS左下角的“设计”,切换到设计视图。9,双击设计视图的“登录”按钮,为它编写登录代码如下:C#codeprotectedvoidbtnLogin_Click(objectsender,EventArgse){//下面的登录方法只是我的习惯而已,我常用DataTable做所有的事情。建议你不要依赖它……否则会被人笑话的……登录的好方法有很多,参考下就好了。stringstrConnection="SERVER=(local);DATABASE=UserTest;UID=sa;PWD=";//PWD=后面写上你的SQLSERVER的sa密码。System.Data.SqlClient.SqlConnectioncn=newSystem.Data.SqlClient.SqlConnection(strConnection);//SQL语句会吧?不会没办法,照抄吧。stringstrSql="SELECT*FROMUsersTableWHEREu_name='"+txbUserName.Text+"'ANDu_pwd='"+txbUserPassword.Text+"'";//SqlDataAdapter这东西有什么用,建议你去查MSDN。System.Data.SqlClient.SqlDataAdapterda=newSystem.Data.SqlClient.SqlDataAdapter(strSql,cn);System.Data.DataTabledt=newDataTable();da.Fill(dt);if(dt.Rows.Count>0){Session["UserName"]=dt.Rows[0]["u_name"].ToString();Session["Message"]="登录成功!";Response.Redirect("default.aspx");}else{Session["Message"]="登录失败。请重新登录。";Response.Redirect("default.aspx");}}10,再按F5测试下,在用户名和密码内输入123,按下“登录”按钮,会提示登录失败。如果都输入abc,就会提示登录成功。因为数据库内只有abc这个用户。11,关闭IE页面,最后我们做退出。12,回到设计视图,双击“退出”按钮,为它编写下面的代码:C#codeprotectedvoidbtnQuit_Click(objectsender,EventArgse){if(Session["UserName"]!=null){Session.Remove("UserName");Session["Message"]="退出成功,欢迎您再来啊";Response.Redirect("default.aspx");}}13,按F5运行,登录成功后,按“退出”按钮,系统会提示已经退出。14,为了验证用户是否已登录,你需要在所有需要登录的页面的Page_Load()内添加:C#codeif(Session["UserName"]!=null)//用户可以访问。else//用户不能访问,扔回到登录页面:Response.Redirect("login.aspx");15,基本如此,搞定。