在创建sql连接字符串时遇到问题

本文关键字:遇到 问题 字符串 连接 创建 sql | 更新日期: 2023-09-27 18:15:02

我有一个登录页面的例子,运行的sql,我试图自定义它到我的服务器。

我遇到了sql字符串的问题。

这是原始的(与我的表信息)。这似乎是从使用@user和@password的登录控件中提取用户名和密码;我认为。如果不是,它在做什么?@user和@password到底是什么?

string sql = "select count(*) from ResidentUserDatabase where users = @user and passwords = @password";

这里是我硬编码的用户名和密码。这工作,我能够登录只是很好。显然不可用,但确认我正在连接到数据库并提取用户信息

string sql = "select count(*) from ResidentUserDatabase where users = 'user' and passwords = 'pass'";

现在,这里是我有问题的地方(因为第一个版本不工作…)。我试图绕过@user和@password,但显然做得不对。

string sql = "select count(*) from ResidentUserDatabase where users = '" + LoginControl.UserName.ToString() + "' and passwords = '" + LoginControl.UserName.ToString() + "'";

我真的不知道从这里去哪里,或者为什么这个例子不起作用。

谢谢

在创建sql连接字符串时遇到问题

@user@password是"参数化sql查询"的参数。您在第三个代码示例中创建的是一个真正的安全问题。谷歌一下"Sql注入攻击"这个词。如果您不熟悉这种安全问题,那么我强烈建议您不要为您的应用程序构建登录表单。"这里有龙"

你这儿有几件事对你不利。

首先,您不应该连接字符串,因为这会导致SQL注入。谷歌一下,你就知道为什么了。

其次,@user和@password令牌是SQL查询的参数。你要做的是给你用来执行SQL的对象(例如SqlCommand)添加参数。具体如何做那件事超出了这个问题的范围。

第三,您的字符串连接查询使用相同的字段作为用户名和密码。