我想把textbox里的password和数据库里的密码作对比,如果一致则能登陆,若不一致就不能登陆,texbox的ID是txtPasswd,sql数据库里存密码的列名叫passwd,可我用如下代码:
if(txtPasswd.Text.ToString() != dtrReader["passwd"].ToString())
{
Response.Write("密码错误");
Response.Write(txtPasswd.Text);
Response.Write(dtrReader["passwd"]);
}
else
{
Session["sesID"] = dtrReader["regID"].ToString();
Response.Redirect("default.aspx");
不管怎么样都是显示密码错误,就算是和数据库里的密码一致,也是显示密码错误,请问这是为什么,应该怎么样改代码,谢谢!
if(txtPasswd.Text.ToString() != dtrReader["passwd"].ToString())
{
Response.Write("密码错误");
Response.Write(txtPasswd.Text);
Response.Write(dtrReader["passwd"]);
}
else
{
Session["sesID"] = dtrReader["regID"].ToString();
Response.Redirect("default.aspx");
不管怎么样都是显示密码错误,就算是和数据库里的密码一致,也是显示密码错误,请问这是为什么,应该怎么样改代码,谢谢!
解决方案 »
- IbatisNet 把表名作为参数
- 如何获取GridView中html控件的值
- 请教GridView中控件取值及验证确认两则问题
- 怎么知道2006年,在百度上搜索最多的10000个关键字?
- 简单js,马上结帐
- 怎么取如:http://www.langgelila.com/index.aspx 倒数第一个/前的字符串
- vs。net2003没法使用了,只剩下郁闷+纳闷了!
- “/”应用程序中的服务器错误。 麻烦老大给看看怎么回事,我是菜鸟,给解释详细点,谢谢
- javascript 中如何取得datagrid中checkbox控件列对象
- 网站的前途问题:www.91asp.cn
- 菜鸟请教各位大侠!关于ItemDataBound
- 请问如何在一个function中实现关闭当前浏览器窗口的代码啊?
{
Response.Write("密码错误");
Response.Write(txtPasswd.Text);
Response.Write(dtrReader["passwd"]);
}
else
{
Session["sesID"] = dtrReader["regID"].ToString();
}//少了!!
Response.Redirect("default.aspx");
if(txtPasswd.Text.ToString() != dtrReader["passwd"].ToString())
{
Response.Write("密码错误");
Response.Write(txtPasswd.Text);
Response.Write(dtrReader["passwd"]);
}
else
{
Session["sesID"] = dtrReader["regID"].ToString();
Response.Redirect("default.aspx");
}//少了!!
txtPasswd.Text.ToString() == dtrReader["passwd"].ToString())
<%@ Page language="c#" Codebehind="Login.aspx.cs" AutoEventWireup="false" Inherits="BBSCS.Login" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>Login</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<script Runat="Server">
void Button_Click(Object Sender,EventArgs e)
{
SqlConnection conn;
SqlCommand cmdLogin;
SqlCommand cmdSelectCount;
SqlDataReader dtrReader;
conn = new SqlConnection(@"Server=localhost;UID=sa;PWD=chenpo2000;Database=testBBS");
conn.Open();
cmdLogin = new SqlCommand("Select * From regUser Where regName = " + "'" + txtName.Text + "'",conn);
cmdSelectCount = new SqlCommand("Select Count(*) From regUser Where regName = " + "'" + txtName.Text + "'",conn);
if(Int32.Parse(cmdSelectCount.ExecuteScalar().ToString()) != 0)
{
dtrReader = cmdLogin.ExecuteReader();
dtrReader.Read();
if(txtPasswd.Text != dtrReader["passwd"].ToString())
{
Response.Write("密码错误");
Response.Write(txtPasswd.Text);
Response.Write(dtrReader["passwd"]);
}
else
{
Session["sesID"] = dtrReader["regID"].ToString();
Response.Redirect("default.aspx");
}
dtrReader.Close();
}
else
{
Response.Write("该用户未注册");
}
conn.Close();
}
void Button_Register(Object Sender,EventArgs e)
{
Response.Redirect("Register.aspx");
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout">
<form Runat="Server" ID="Form1">
用户名:
<asp:TextBox ID="txtName" Runat="Server" />
<asp:RequiredFieldValidator ControlToValidate="txtName" Text="请输入用户名" Runat="Server" ID="Requiredfieldvalidator1" />
<br>
密 码:
<asp:TextBox ID="txtPasswd" TextMode="Password" Runat="Server" />
<asp:RequiredFieldValidator ControlToValidate="txtPasswd" Text="请输入密码" Runat="Server" ID="Requiredfieldvalidator2" />
<br>
<asp:Button Text="登录" OnClick="Button_Click" Runat="Server" ID="Button1" />
<asp:Button Text="注册" OnClick="Button_Register" Runat="Server" ID="Button2" />
</form>
</body>
</HTML>
<%@ Page language="c#" Codebehind="Login.aspx.cs" AutoEventWireup="false" Inherits="BBSCS.Login" %>
既然是CodeBehind,怎么还有
<script Runat="Server">
void Button_Click(Object Sender,EventArgs e)
{
......????
<%@ Page language="c#" Codebehind="Login.aspx.cs" AutoEventWireup="false" Inherits="BBSCS.Login" %>
把AutoEventWireup="false"
改成true
试试
public DataReader test(username,password){
......
select * from tableName where 用户名=username , 密码=password;
......
}
public void button_click(object b,EventArgs e){
if(test(username,password)){
.....
code
.....
}
else
Response.Write("sorry.......");
}
DataReader 不要监视
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;namespace BBSCS
{
/// <summary>
/// Login 的摘要说明。
/// </summary>
public class Login : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox txtName;
protected System.Web.UI.WebControls.TextBox txtPasswd;
protected System.Web.UI.WebControls.Button Button1;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator1;
protected System.Web.UI.WebControls.RequiredFieldValidator Requiredfieldvalidator2;
protected System.Web.UI.WebControls.Button Button2;
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}
/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
if (!IsPostBack)
{
Page.DataBind();
}
因为你在提交的时候,TextBox.Text=null;
加上以上代码后,就会是你所填的值!!
试一下吧.