选择带有撇号的VarChar

时间:2012-02-09 23:00:03

标签: sql tsql sql-injection varchar

我有一个包含VarChar(50)列的SQL Server数据库。我在这个应用程序中使用ASP.NET/C#。

我已经保护我的程序免受SQL注入,因此当我插入任何带有撇号的文本时,它将正确插入。我在数据库中证实了这一点。

但是,现在当我在数据库中查询此varchar列时,而不是在列中获取撇号,我得到它的unicode版本(')。

我使用SqlDataSource并将其绑定到DataGridView。什么可能导致这种转换?我怎么能避免它?

编辑:
似乎此问题仅发生在文本框中,标签似乎正在正确显示它们。

感谢您的帮助。这个社区很棒!

1 个答案:

答案 0 :(得分:2)

修复数据库中的数据:Replace the ascii apostrophe with a real apostrophe in a sql database

如何正确插入: How to insert a value that contains an apostrophe (single quote)?

- 编辑 -

这个主题似乎在这个问题上有了更多的启示:http://forums.asp.net/p/1554455/3818604.aspx

您还可以通过http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.htmldecode.aspx

尝试HtmlDecode(string)方法