我有一个登录页面,用于检查当前注册用户的数据库。目前,我的代码将告诉我用户不存在,实际上他们在数据库中,或者如果不存在,页面将保持不变,此时应该出现与问题相对应的文本。
所以名字'Tom'已经在数据库中了,当我输入'Tom'时我收到了消息 “用户不存在”。
myusername
答案 0 :(得分:1)
您将SQL字符串与传入的用户名进行比较。
string checkuser = "select count(*) from [Table] where UserName= '" + TextBoxLogIn.Text + "'";
//...
if (checkuser == TextBoxLogIn.Text)
{
Session["New"] = TextBoxLogIn.Text;
Response.Write("User name is correct");
} else {
Response.Write("user does not exist");
}
我认为除非用户对名称进行SQL查询,否则它将始终评估为false:D
[编辑]实际上,即使他们的名字是一个SQL查询,代码也永远不会到达那一点,因为你首先不会在数据库中找到他们的名字。
答案 1 :(得分:0)
您 比较使用数据库中的用户名和输入文字的记录。
$a == $b
执行查询后代替:
string checkuser = "select count(1) from [Table] where UserName= '" +
TextBoxLogIn.Text + "'";
使用以下代码:
int temp = Convert.ToInt32(com.ExecuteScalar().ToString());
conn.Close();
if (temp == 1)
{
conn.Open();
if (checkuser == TextBoxLogIn.Text)
///
///
答案 2 :(得分:0)
Peope已经告诉过你关于比较保存查询的变量再次输入你输入的值(doh !!)时所犯的错误但是我想让你反对以你的方式编写查询:它不是'一个很好的做法是以你完成的方式编写查询,因为如果你没有正确地转义你的变量,你很容易受SQL Injection或至少讨厌的错误。
我邀请您阅读有关如何使用.Net框架为您提供的内容:使用参数!
在这里,您可以找到您可以使用或至少可以理解的代码的另一个答案:https://stackoverflow.com/a/11905249/1716620