2012-02-09 111 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