【问题标题】:Remove bad characters from columns with string values从具有字符串值的列中删除坏字符
【发布时间】:2015-02-25 09:42:44
【问题描述】:

我正在编写一个向表中插入大量值的 INSERT 查询。唉,在这种特殊情况下我不能使用参数化查询。

所以我想要一个函数来删除所有导致 INSERT 失败的坏字符。例如。在以下查询中

INSERT INTO myTable (a,b,c) VALUES ("a","b","c")

如果a 的值包含引用",这可能会破坏整个INSERT。那么有没有删除所有这些危险字符的功能呢?不然有什么危险人物?

【问题讨论】:

  • 为什么你不能使用sql-parameters?
  • @TimSchmelter 因为我没有一个 INSERT。我的 INSERT 看起来像 INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);,一次插入了数千行。

标签: c# mysql database


【解决方案1】:

使用 sql-parameters 防止脚本中的任何注入:

SqlCommand command = new SqlCommand("INSERT INTO myTable (a,b,c) VALUES (@a,b,@c)", conn);
command.Parameters.AddWithValue("@a", "a");
command.Parameters.AddWithValue("@b", "b");
command.Parameters.AddWithValue("@c", "c");

【讨论】:

  • 我的问题是我没有运行单个 INSERT。类似于INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);,一次插入数千行。
  • @all 抱歉打错字了...现在已更正,但也可以正常工作:)
  • @Pedram 为什么你不能把 sqlcommand 放到一个循环中,使用一个连接?
  • @user1666620 如果我错了,请纠正我,但多行的 INSERT 不是比单行的多个 INSERT 快吗?
猜你喜欢
  • 2016-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-13
  • 1970-01-01
  • 2021-06-24
  • 2011-04-20
相关资源
最近更新 更多