注册 登录
编程论坛 ASP.NET技术论坛

If不成功,不执行Else了!!怎么办??

飞石 发布于 2007-12-10 21:29, 1524 次点击
自己做的login.aspx  其中代码如下

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        string constring = "provider=microsoft.jet.oledb.4.0;data source=" + Server.MapPath(".") + "//db.mdb";
        OleDbConnection con = new OleDbConnection(constring);

        string sql = "select * from users where name='" + name.Text.ToString() + "'";
        
        OleDbCommand com = new OleDbCommand(sql, con);
        com.Connection.Open();
        OleDbDataReader dr;
        dr = com.ExecuteReader();
      

        while (dr.Read())
        {


            if (dr[2].ToString() == password.Text)
            {
                Session["name"] = name.Text;
                Response.Redirect("index.aspx");
            }
            else
                Response.Redirect("error.aspx");
    }
    }
    protected void name_TextChanged(object sender, EventArgs e)
    {

    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        name.Text = string.Empty;
        password.Text = string.Empty;
    }
}


目前的问题是..我写的是,如果密码输入错误,则跳转到error.aspx.但是执行后,密码输入错误.也一点反应没有,只是停留在login.aspx.请大家帮忙看看怎么回事,谢谢了!!
name和password是文本框
button1是登陆按钮
button2是重置按钮
8 回复
#2
垃圾的沉默2007-12-10 22:05
else
{
   Response.Redirect("error.aspx");
}
如果这样不行的话..把条件倒过来写..先执行密码错误的机制..然后再执行密码正确的机制
#3
飞石2007-12-11 12:21
加了{}还是不行。。把条件倒过来写..先执行密码错误的机制..然后再执行密码正确的机制。
不明白?请教!
#4
垃圾的沉默2007-12-11 14:53
先判断密码错误执行什么..然后密码正确执行什么...
#5
l5251690702007-12-11 15:51
看不出来什么错误,我曾经遇到过,按楼上的方法就可以. if 和else 的内容交换
#6
caiyakang2007-12-11 17:37
while (dr.Read())
        {


            if (dr[2].ToString() == password.Text)
            {
                Session["name"] = name.Text;
                Response.Redirect("index.aspx");
            }
            else
                return ;
    }
#7
冰彩虹2007-12-15 00:00
你确定dr.Read()==true?????????????
#8
jimmy10292007-12-19 22:17
为什么不进去debugger?那样子就知道是不是出了什么异常...
#9
cquxiongyunlong2007-12-20 19:55
从你写的代码来看,出现问题可能是因为:一,表中没有你输入的用户名,即查询结果为空!二、密码字段的位置,即确保dr[2]有意义,请记住dr的下标是从0开始的。
1