c# - 即席查询字符串导致语法错误

标签 c# sql ado.net syntax-error

我创建了一个网站,但我的登录系统中不断出现语法错误。

                 conn.Open();
                 int amountOfUsers = (int)command.ExecuteScalar();

                 if (amountOfUsers == 1)
                 {
                //User exists, check if the password match
                query = string.Format("SELECT password FROM users WHERE name = '{0}", login);
                command.CommandText = query;
                string dbPassword = command.ExecuteScalar().ToString();

最佳答案

您还没有关闭字符串标识符 {0}格式字符串中带有撇号:

query = string.Format("SELECT password FROM users WHERE name = '{0}'", login);

但我强烈建议您不要在 SQL 中使用格式字符串,因为它是 SQL 注入(inject)的一个很好的安全漏洞!

关于c# - 即席查询字符串导致语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22735085/

相关文章:

c# - StringContent 与 FormUrlEncodedContent

c# - 如何将随机生成的 ID 显示到多个文本框中

MySql 查询 : How to Write Inner Select Join Query

.net - ORM 工具或手动将对象构建到关系映射层

c# - Razor 语法问题

c# - 使用 'is' 关键字的局部变量声明 VS 'as' 关键字的性能差异

mysql - 在 MYSQL 中为 'nearest neighbor' 搜索实现 k-d 树?

SQL Server 连接 GROUP BY

c# - 从正则表达式中提取数据库提供程序的分隔符

c# - ASP.NET 中的 GridView