2009-12-23 33 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

相关问题