2012-02-09 70 views
0

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

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

但是,现在当我查询此varchar列的数据库时,不是在列中获得撇号,而是获取它的Unicode版本(')。我使用SqlDataSource并将其绑定到DataGridView。什么可能导致这种转换?我怎样才能避免它?

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

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

回答

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

您也可以通过尝试HtmlDecode(string)方法10

+0

您误解了这个问题。数据库中的所有内容都很完美。使徒们是使徒。当我选择这些数据并尝试在没有明显原因的情况下将其转换为unicode的问题中使用它时? – ImGreg 2012-02-09 23:11:59

+0

感谢您的编辑。我会在明天测试这些代码,看看他们是否解决了这个问题。 – ImGreg 2012-02-09 23:32:22

+0

Server.HtmlDecode(string)似乎是最简单/最合理的解决方案。很好找! – ImGreg 2012-02-10 14:10:06