插入中的随机特殊字符

时间:2017-08-06 11:55:26

标签: c# sql-server

我在C#中有以下代码(Sql server(LocalDB)\ v11.0) 如果Definition属性没有特殊字符,则执行Insert。但 有时它里面有一个未知的特殊字符,我记得错误。

 for()
  {
  if(){
  DB.Docommand("INSERT INTO Test5(P_Def) VALUES('"+ pro.Definition + "')");
      }
  }

在数据库中,数据类型为nvarchar(Max) 但是我收到以下错误:

.....附近的语法不正确

我想用特殊字符插入我的属性。 id能做什么? 感谢

1 个答案:

答案 0 :(得分:5)

参数化插入。除了能够插入包含nvarchar内有效字符的字符串之外,您还可以通过避免潜在的sql injection attack来解决主要的安全问题:

var cmd = new SqlCommand("INSERT INTO Test5(P_Def) VALUES(@Def)", con);
cmd.Parameters.AddWithValue("@Def", pro.Definition);