Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 特殊查询字符串导致语法错误_C#_Sql_Ado.net_Syntax Error - Fatal编程技术网

C# 特殊查询字符串导致语法错误

C# 特殊查询字符串导致语法错误,c#,sql,ado.net,syntax-error,C#,Sql,Ado.net,Syntax Error,我创建了一个网站,登录系统中的语法错误不断发生 conn.Open(); int amountOfUsers = (int)command.ExecuteScalar(); if (amountOfUsers == 1) { //User exists, check if the password match

我创建了一个网站,登录系统中的语法错误不断发生

                 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注入的一个很好的安全漏洞

可能的重复项(我可以把一些asp.net阅读器转到VtC吗,这是afaict重新发布的问题-谢谢)。请不要使用裸字符串来执行SQL语句。使用参数化查询,它们同样易于编写,但速度更快、更安全,并且完全避免了转换问题。如果用户输入了
,则显示下拉表用户--
作为登录名,或仅
”或1=1--。可能的副本不仅存在安全风险。字符串转换会导致数字和日期参数出现很多问题,性能更差,因为执行计划不能重用等等。