asp.net从数据库登录网站

时间:2011-12-16 22:47:29

标签: asp.net database login

我有一个来自数据库的登录网站。

这是我的代码:

        protected void SignIn_Click(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=MICROSOF-58B8A5\\SQL_SERVER_R2;Initial Catalog=Movie;Integrated Security=True");
            con.Open();

            string cmdStr = "select count(*) from Users";

            cmdStr += "where Username='" + UsernameSignIn.Text + "'";
            cmdStr+= "AND Password='"+PasswordSignIn.Text+"'";

            SqlCommand cmd = new SqlCommand(cmdStr, con);

            int i = Convert.ToInt16(cmd.ExecuteScalar());

            if (i == 0)
            {
                ErrorSignIn.Text = "Sorry, Wrong Username or Password";
            }
            else
            {
                Response.Redirect("HomeAfter.aspx");
            }
        }

出于某种原因,我遇到了一个错误:

  

' - '

附近的语法不正确

。 (对于这一行:int i = Convert.ToInt16(cmd.ExecuteScalar());

谢谢,

2 个答案:

答案 0 :(得分:2)

没有间距。您的查询如下所示:

从Userswhere Username ='...'AND Password ='...'

中选择count(*)

添加空格,如下:

string cmdStr = "select count(*) from Users";
cmdStr += " where Username='" + UsernameSignIn.Text + "'";
cmdStr+= " AND Password='"+PasswordSignIn.Text+"'";

答案 1 :(得分:1)

除了作为一种身份验证形式特别粗糙的事实(你真的应该考虑使用内置的ASP.NET成员资格提供程序)之外,你至少应该使用参数化的SQL查询,而不是连接纯文本以创建SQL语句。此外,我注意到您的“登录”安排只是对HomeAfter.aspx页面执行response.redirect,而不存储任何要重复使用的内容,表明用户已经成功登录,例如cookie或sesssion变量。

这一切有什么特别的原因,还是因为你刚刚开始,你需要学习一点?