Asp.net 返回空值的executescalar
问题可能是下面的空格字符(我在空格处加了一个*where) (使用不正确) 因此,上述情况意味着您的查询正在尝试获取一个具有 开头和结尾都有空格字符,所以只需删除这些空格即可 另一点是,这种查询应该与参数一起使用,因为它很容易出错 如果查询未返回值,SQL注入类型的攻击将返回null 返回结果集中第一行的第一列或null 如果结果集为空,则引用(Visual Basic中无任何内容) 此行将引发空引用异常:Asp.net 返回空值的executescalar,asp.net,Asp.net,问题可能是下面的空格字符(我在空格处加了一个*where) (使用不正确) 因此,上述情况意味着您的查询正在尝试获取一个具有 开头和结尾都有空格字符,所以只需删除这些空格即可 另一点是,这种查询应该与参数一起使用,因为它很容易出错 如果查询未返回值,SQL注入类型的攻击将返回null 返回结果集中第一行的第一列或null 如果结果集为空,则引用(Visual Basic中无任何内容) 此行将引发空引用异常: where Username='*" + TextBox1.Text + "*' "
where Username='*" + TextBox1.Text + "*' "
使用字符串连接生成查询容易出错。更重要的是,它容易受到SQL注入的攻击。代码表明密码以纯文本形式存储在数据库中
SQL注入和纯文本密码是任何应用程序都非常关心的问题。参数化查询(使用ADO.Net非常简单)并散列密码。
缺少匹配可能是由以下行引起的:
passcom.ExecuteScalar().ToString();
注意字符串连接中添加的额外空格。TextBox1
中的任何内容前面/后面都会有空格,导致匹配失败。它在哪里“不起作用”?我们能描述一下你的问题吗
passcom.ExecuteScalar().ToString();
string checkpasswordQuery = "select password from usersign where Username=' " + TextBox1.Text + " ' ";