在c#中插入单引号的异常

Tou*_*han 1 c# sql-server exception winforms

我面临的问题是.当我在文本字段中插入单引号时.在插入时,它会在该特定字段附近提供不正确的语法.为什么?单引号对sqlserver有特殊意义吗?

如果用户输入的内容如果没有,那么,或者有时错误输入单引号然后它会给出异常.有没有sol来处理这个?如果单引号与sqlserver有问题那么如何处理呢?

Ars*_*yan 9

使用SqlParameter而不是字符串连接

这种表达式是你可以在你的代码中做的最糟糕的事情,因为首先你会遇到数据类型转换的问题,其次是Sql Injection的大门是黑客的操作

string someQuery = "Select * from SomeTbl Where SomeTbl.SomeColumn = '" + tbSomeBox.Text+ "'" ;
Run Code Online (Sandbox Code Playgroud)

而不只是使用这个

string someQuery = "Select * from SomeTbl Where SomeTbl.SomeColumn = @param";
SqlCommand someCommand = new SqlCommand(someQuery, conn);
someCommand.AddParams("@param",tbSomeBox.Text);
...
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助


Wil*_*l A 6

SQL Server字符串(通常)用单引号括起来,因此如果在INSERT之前没有对它进行转义,则字符串中的单引号将导致错误.

单引号只需要加倍,因此字符串Will''s World将导致Will's World它进入数据.

  • -1因为您提供了一种解决问题的简单方法,所以SQL参数就是解决方案 (2认同)