我想在.NET framework中找到一个函数,调用SQL Server的库来转义发送给sqlserver的值,就像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注入攻击。它还允许您忽略数据格式化问题(例如,如何在SQL Server中格式化DateTime?在SQL中应该如何表示数字?等等)

关于php - NET Framework中的mysql_real_escape_string(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5787669/

10-16 14:52