初学ASP.NET登录用户名密码验证问题,加SQL
那个大哥给一个完整呢,用户登录,用户名、密码验证问题,加上有SQL的连接语句,即从using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
开始,不完整的小弟看不懂,给出的就给分!谢谢!
[解决办法]
MSDN上有,我这里有,太复杂,你不定看的懂
[解决办法]
来个简单的吧access数据库库名db 表pUser 字段uID,Upass
链接字符串中 Server.MapPath( "../db/db.mdb ")一定要给绝对正确的路径
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
this.romNum();
}
}
//生成随机数
private void romNum()
{
Random rd=new Random();
string s= " ";
for(int i=1;i <5;++i)
{
s+=rd.Next(1,10).ToString();
}
this.verifycode2.Value = s;
this.divNum.InnerHtml = s;
}
private void btnLogin_Click(object sender, System.EventArgs e)
{
if(this.verifycode.Text!=this.verifycode2.Value)
{
Response.Write( " <script> alert( '验证码输入错误! ') </script> ");
return;
}
OleDbConnection con = new OleDbConnection( "provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Server.MapPath( "../db/db.mdb ") );
con.Open();
string a = "select count(*) from pUser where userID = ' "+this.UserName.Text+ " ' and userPass= ' "+this.PassWord.Text+ " ' ";
OleDbCommand cmd = new OleDbCommand( "select count(*) from pUser where uID = ' "+this.UserName.Text+ " ' and uPass= ' "+this.PassWord.Text+ " ' ",con);
int i = Convert.ToInt32( cmd.ExecuteScalar());
con.Close();
if(i> 0)
{
Response.Write( " <script> alert( '登录成功! ') </script> ");
}
else
{
Response.Write( " <script> alert( '用户名或密码错误! ') </script> ");
}
}
[解决办法]
aspx代码片断:
<tr>
<td style= "WIDTH: 64px " align= "right " height= "25 "> 用 户: </td>
<td noWrap> <asp:textbox id= "txtUserName " runat= "server " Width= "200px " MaxLength= "50 " Columns= "16 " CssClass= "b_input "> </asp:textbox> <asp:requiredfieldvalidator id= "RequiredFieldValidator1 " runat= "server " ErrorMessage= "请输入用户名 " ControlToValidate= "txtUserName "> </asp:requiredfieldvalidator> </td>
</tr>
<tr>
<td style= "WIDTH: 64px " align= "right " height= "25 "> 密 码: </td>
<td noWrap> <asp:textbox id= "txtUserPass " runat= "server " Width= "200px " MaxLength= "50 " Columns= "16 " CssClass= "b_input "
TextMode= "Password "> </asp:textbox> <asp:requiredfieldvalidator id= "RequiredFieldValidator2 " runat= "server " ErrorMessage= "请输入密码 " ControlToValidate= "TxtUserPass "> </asp:requiredfieldvalidator> </td>
</tr>
<tr>
<td colSpan= "2 " height= "25 ">
<asp:button id= "btnLogin " runat= "server " CssClass= "btn_a " Text= "登 陆 "> </asp:button>
</td>
</tr>
<tr>
<td align= "center " colSpan= "2 " height= "25 "> <asp:label id= "lbl_message " runat= "server " Visible= "False "> </asp:label> <asp:regularexpressionvalidator id= "UserIDREV " runat= "server " ErrorMessage= "输入的信息有非法字符 " ControlToValidate= "txtUserName "
EnableClientScript= "False " Font-Size= "10pt " Font-Name= "verdana " Display= "Static " ValidationExpression= "^\w+$ "> 输入的信息有非法字符 </asp:regularexpressionvalidator> </td>
</tr>
cs代码片断:
string username = this.txtUserName.Text.Trim();
string userpass = this.txtUserPass.Text.Trim();
string str = "select * from 用户表 where user_id= ' " + username + " ' ");
using (SqlConnection connection = new SqlConnection( "server=127.0.0.1;database=DATABASE;uid=sa;pwd= "))
{
DataSet ds = new DataSet();
try
{
connection.Open();
SqlDataAdapter command = new SqlDataAdapter(str);
command.Fill(ds, "ds ");
}
catch(System.Data.SqlClient.SqlException ex)
{
throw new Exception(ex.Message);
}
if(ds.Tables[0].Rows.Count> 0)
{
if ( ds.Tables[0].Rows[0][ "password1 "].ToString().Trim() == userpass )
//成功
else
//失败
}
else
//没这个人
}
[解决办法]
点 "管理 "的按钮
[解决办法]
private void LogButton_Click(object sender, System.EventArgs e)
{
string userid,pwd;
userid=Userid.Text;
pwd=Pwd.Text;
string mySel= "SELECT count(*) as iCount from user where UserID= " "+userid+ " " ";
OleDbCommand myCmd1=new OleDbCommand(mySel,myConn);
myCmd1.Connection.Open();
OleDbDataReader Dr1;
Dr1=myCmd1.ExecuteReader();
Dr1.Read();
string Count=Dr1[ "iCount "].ToString();
Dr1.Close();
myCmd1.Connection.Close();
string DrPwd,DrRoles;
if(Count!= "0 ")
{
mySel= "SELECT * from user where UserID= " "+userid+ " " ";
OleDbCommand myCmd=new OleDbCommand(mySel,myConn);
myCmd.Connection.Open();
OleDbDataReader Dr;
Dr=myCmd.ExecuteReader();
Dr.Read();
DrPwd=Dr[ "Password "].ToString();
Dr.Close();
if(DrPwd==pwd)
{
Session[ "logid "]=userid;//新建一个Session
Response.Redirect( "main.aspx ");
}
else
Msg.Text= "登录密码错. ";
}
else
Msg.Text= "没有这个用户. ";
}
}
你看看对你可有帮助?
[解决办法]
楼主太懒了,你把aspx代码拷到页面里,再双击那个登录按钮,再cs代码粘上去就完了,怎么还要人给完整的代码啊
[解决办法]
你给的别人的分数加起来不能超过你的出的分数啊.你出的50分.总和不能超过50啊