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.SqlClient;public partial class ligon : System.Web.UI.Page
{
    string userid;
    protected void Page_Init(object sender, EventArgs e)
    {
        //this.tbName.Text = "";//设为空白
        //this.tbPsw.Text = "";    }
   
    protected void Button1_Click(object sender, EventArgs e)
    {
        if (Page.IsValid == true)
        {
            //连接数据库
            Boolean test = true;
            SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "server=.;database=test;Integrated Security=true";
            conn.Open();            
            string cmdtext = "Select count(*) from customer where name='" + tbName.Text + "' and password='"+tbPsw.Text+"'";
            SqlCommand cmd = new SqlCommand(cmdtext, conn);
            int count=Convert.ToInt32(cmd.ExecuteScalar());       
            try
            {
                if (tbName.Text == "")
                {
                    this.Button1.Attributes.Add("onclick", "javascript:showmessagebox1();");
                    test = false;
                }
                else
                {
                    if (tbPsw.Text== "")
                    {
                        this.Button1.Attributes.Add("onclick", "javascript:showmessagebox2();");
                        test = false;
                    }
                }
                if (test)
                {
                    if (count > 0)
                    {
                        Response.Redirect("guanli.aspx");
                        Session["userid"] = userid;
                        Response.Write("asdsad");
                    }
                    else
                    {
                        this.Button1.Attributes.Add("onclick", "javascript:showmessagebox();");                    }
                }
              
            }
            finally
            {               
                conn.Close();
            }           
        }
    }
    protected void Button2_Click(object sender, EventArgs e)
    {
        Response.Redirect("http://www.google.com");
    }
    public override void VerifyRenderingInServerForm(Control control)
    {    }
}
这是一个登入页面的代码;
非语法错误,而可能是逻辑错误,每次对于输入用户名,密码的响应,要按两次提交才有结果;就是所有响应都往后一步。而第一次按是不会有任何结果的;
我看了好久都没看出问题啊。谁能帮我看看啊,谢谢

解决方案 »

  1.   

    if (Page.IsValid == true) 
            { 
    -->page.ispostback
      

  2.   

    protected void Button1_Click(object sender, EventArgs e) 
    这里面逻辑有些混乱,感觉。
      

  3.   

    this.Button1.Attributes.Add("onclick", "javascript:showmessagebox1();"); 
    像这样的验证都写在一个JS方法里,在JS方法里再判断处理。。
    Button1再指定OnClientClick="JS方法"
      

  4.   

    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.SqlClient;public partial class ligon : System.Web.UI.Page
    {
        string userid;
        protected void Page_Init(object sender, EventArgs e)
        {
            //this.tbName.Text = "";//设为空白
            //this.tbPsw.Text = "";    }
       
        protected void Button1_Click(object sender, EventArgs e)
        {
            if (Page.IsValid == true)
            {
                //连接数据库
                Boolean test = true;
                SqlConnection conn = new SqlConnection();
                conn.ConnectionString = "server=.;database=test;Integrated Security=true";
                conn.Open();            
                string cmdtext = "Select count(*) from customer where name='" + tbName.Text + "' and password='"+tbPsw.Text+"'";
                SqlCommand cmd = new SqlCommand(cmdtext, conn);
                int count=Convert.ToInt32(cmd.ExecuteScalar());       
                try
                {
                   if (test)
                    {
                        if (count > 0)
                        {
                            Response.Redirect("guanli.aspx");
                            Session["userid"] = userid;
                            Response.Write("asdsad");
                        }
                        else
                        {                        Response.Write("add");
                                                }
                    }
                  
                }
                finally
                {               
                    conn.Close();
                }           
            }
        }
        protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Redirect("http://www.google.com");
        }
        public override void VerifyRenderingInServerForm(Control control)
        {    }
    }
    我把代码换成这样,也是同样问题啊
    好像和那句话没关系啊