我在C#中有以下代码(Sql server(LocalDB)\ v11.0) 如果Definition属性没有特殊字符,则执行Insert。但 有时它里面有一个未知的特殊字符,我记得错误。
for()
{
if(){
DB.Docommand("INSERT INTO Test5(P_Def) VALUES('"+ pro.Definition + "')");
}
}
在数据库中,数据类型为nvarchar(Max) 但是我收到以下错误:
.....附近的语法不正确
我想用特殊字符插入我的属性。 id能做什么? 感谢
答案 0 :(得分:5)
参数化插入。除了能够插入包含nvarchar
内有效字符的字符串之外,您还可以通过避免潜在的sql injection attack来解决主要的安全问题:
var cmd = new SqlCommand("INSERT INTO Test5(P_Def) VALUES(@Def)", con);
cmd.Parameters.AddWithValue("@Def", pro.Definition);