2009-12-23 66 views
0

我怎樣才能改變我想要的操作使用的代碼頁,如下面的一個?設置正確的代碼頁數據庫中讀取操作

string foo = (string)sqlCommand.ExecuteScalar(); 

據我所知,我可以包裝在String.Format(IFormatProvider, String)內的方法調用。那將是盛大的。

但是我怎麼構造具有特定代碼頁一的IFormatProvider這樣我就可以正確讀取從我的數據庫存儲在不同的代碼頁比數據庫文件中,這家特定數據?

更多信息
- 數據庫是一個SQLite數據庫。
- 數據爲葡萄牙文。
- 我在外部添加的數據在我的應用程序上顯示不正確。
- 通過我的應用程序添加的數據正確顯示。

我想我跟蹤下來的事實,我想通過我的應用程序中執行時,我在UTF-8格式添加數據。我正在使用System.Data.SQLite提供程序,我可能會進一步調查我可以如何更改此行爲。無論如何,我現在想要從外部源讀取正在插入到數據庫中的數據,這些數據不是UTF-8格式。

+1

你能成爲一個更具體一點什麼數據的樣子,你有什麼希望它是什麼樣子? – 2009-12-23 19:25:56

+0

+1謝謝Ori。增加了更多信息。 – 2009-12-23 19:45:30

+1

您確定它不是您的外部代碼(即,無論將數據添加到數據庫的外部)是否是這裏的問題?我很確定,.NET中的任何一種語言的字符串都將被SQLite正確存儲和檢索,所以我猜想壞數據根本不會通過.NET。在這種情況下,修補程序必須應用於該外部源,而不是您的程序。 – 2009-12-23 20:04:39

回答

1

不,String.Format(等)全部與客戶端處理有關。如果你真的需要改變數據庫如何處理文本數據,我希望這是SQL語句的一部分,或者可能是連接字符串。 (您可能需要使用這些特定的查詢不同的連接。)

在.NET本身,所有的文字資料只會是Unicode。說實話,我倒是希望數據庫就知道了事情的原委和處理分歧本身...但是你沒有給的細節,你正在使用的數據庫或如何一個表使用不同的編碼給他人。

+0

我提供了更多信息。但是,您的帖子已經很有用。謝謝喬恩。 +1 – 2009-12-23 19:46:04

+0

喬恩,根據我提供的信息,您的評論是最好的。我理解:)然而,你給了我足夠的信息(我不熟悉所有這些編碼的東西),實際上找到了問題所在。插入的錯誤數據實際上是我的應用程序之外的數據。它被插入ANSI格式,當它應該是UTF-8。非常感謝! – 2009-12-23 19:57:04