PetaPoco 在字符串中插入@

Dan*_*ams 3 t-sql petapoco

我想执行一行 SQL,如下所示:

conn.Open();
var db = new PetaPoco.Database(conn);
var sql = "INSERT INTO FOO (name) VALUES ( 'foo@bar.com')";
var response = db.Execute(sql);
Run Code Online (Sandbox Code Playgroud)

问题是 PetaPoco 认为 @bar 是一个参数。有没有办法告诉它不要特殊对待任何@?我超级蹩脚的解决方法是将“@”替换为“at”。我带着这种耻辱生活。

Edu*_*eni 5

“你做错了”™

为了避免 SQL 注入攻击以及连接字符串的其他细微差别,您应该使用参数:

var response = db.Execute("INSERT INTO FOO (name) VALUES (@0)", "foo@bar.com");
Run Code Online (Sandbox Code Playgroud)

错误的方式,但至少有效:

var response = db.Execute("INSERT INTO FOO (name) VALUES ('foo@@bar.com')", 
Run Code Online (Sandbox Code Playgroud)