tsql - PetaPoco INSERT with @ in the string

标签 tsql 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);

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

最佳答案

“你做错了”™

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

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

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

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

关于tsql - PetaPoco INSERT with @ in the string,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47102817/

相关文章:

sql - 用选择概率优化 T-SQL 查询

sql - SQL Server中的临时表导致 ' There is already an object named'错误

sql - 按行号更新行

c# - 我有办法访问 C# 类属性吗?

c# - 我误解了 PetaPoco.IgnoreAttribute 吗?

sql - 如何删除特定列的外键

sql - 如何根据条件选择列?

petapoco - 在 PetaPoco 中,如何装饰具有多列主键的表

mysql - PetaPoco 插入/更新

c# - 尝试从 int 映射时出现无效的转换异常?枚举?