我想在 .NET Framework 中找到一个函数来调用 SQL-Server 的库以转义真正发送到 sql server 的值,如 mysql-real-escape-string()在 PHP 中调用 MySQL 的库。
请提出一个我可以调用它的方法,它通过一次往返数据库返回转义字符串,不需要执行它的查询
有吗?
最佳答案
你为什么要这么做?将用户输入发送到数据库的正确方法不是转义,而是使用 query parameters .
using(var command = new SqlCommand("insert into MyTable(X, Y) values(@x, @y)", connection))
{
command.Parameters.Add("@x", textBoxX.Text);
command.Parameters.Add("@y", textBoxY.Text);
command.ExecuteNonQuery();
}
这提供了更好的性能,因为查询文本总是相同的,所以可以缓存查询执行计划。这也可以保护您免受 SQL 注入(inject)攻击。它还允许您忽略数据格式问题(例如 DateTime 在 SQL-Server 中是如何格式化的?您应该如何在 SQL 中表示数字?等等)
关于php - .NET Framework 中的 mysql_real_escape_string(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5787669/