我是ASP.net的新手,并且已经按照一些视频教程来构建登录页面。我成功地创建了我的注册页面,将详细信息输入到我的数据库中的表中,但是我无法让我的登录页面工作= /。我已经在这里工作了几个小时,我不确定是否有你可以帮忙,但值得一试。我使用的IDE是visual studio(最新版本)。
我收到以下错误(点击图片会给出更近的视图,但您可能已经知道了):
错误根据我尝试登录的人而变化,例如,当尝试以john身份登录时返回了上述错误,尝试以管理员身份登录时返回以下错误。
如下所示是我在登录按钮后面使用的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["RegistrationConnectionString"].ConnectionString);
conn.Open();
string checkuser = "select count(*) from [Table] where [Login]'" + Loginbox.Text + "'";
SqlCommand com = new SqlCommand(checkuser, conn);
int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
conn.Close();
if (temp == 1)
{
conn.Open();
string CheckPasswordQuery = "select Password from [Table] where [Login]='" + Loginbox.Text + "'";
SqlCommand Passcom = new SqlCommand(CheckPasswordQuery, conn);
string password = Passcom.ExecuteScalar().ToString().Replace(" ","");
if (password == Passwordbox.Text)
{
Session["New"] = Passwordbox.Text;
Response.Write("Password is correct");
}
else
{
Response.Write("Wrong password");
}
}
else {
Response.Write("User name does not exist");
}
}
}
下面显示的是表单页面视图,它运行得很好,按下登录按钮时会返回错误。
下面显示的是表格定义:
以下显示的是表格中包含的数据:
感谢大家的时间,感谢您提出任何帮助解决此问题的任何意见。
答案 0 :(得分:4)
您的查询语法无效。请注意,虽然许多教程可能会向您展示这样的查询,但它非常不安全。你应该使用参数。但是,为了这个答案,你忘记了等号:
string checkuser = "select count(*) from [Table] where [Login] = '" + Loginbox.Text + "'";
答案 1 :(得分:3)
您的语法不正确,但如果您将其参数化以避免sql注入
,则实际上更安全string checkuser = "select count(*) from [Table] where [Login] = @user";
SqlCommand com = new SqlCommand(checkuser, conn);
com.Parameters.Add("@user", Loginbox.Text);
...