Vb Net数据表无法检索us7ascii oracle数据

时间:2012-10-23 18:39:42

标签: .net vb.net oracle type-conversion

我们有一个用vb.net 4.5编写的应用程序,它使用ODBC驱动程序来检索来自Oracle 10g数据库的数据。数据库字符集设置为us7ascii。我们有包含扩展ascii字符的表(例如ÄÄ或ÈÈ)。当我们尝试使用以下代码检索数据时:

        Dim thisCN1 As New System.Data.Odbc.OdbcConnection(connectionString)
        Dim szSql as string="select * from mytable"  
        Dim dt As New DataTable
        Dim dataAdapter As New System.Data.Odbc.OdbcDataAdapter(szSql, thisCN1)
        dataAdapter.Fill(dt)
我们有??包含扩展ascii字符的列中的字符而不是ÄÄ或ÈÈ。 在select查询中,我们有一个varchar2类型的列(例如COLUMN_A),它包含扩展的ascii字符(例如ÄÄ或ÈÈ)。当我们检查结果数据表时,我们发现了一个?字符而不是ÄÄ或ÈÈ。我们认为问题出在从us7ascii oracle数据类型到16b unicode的vbnet system.string的转换中。 varchar2 oracle列似乎被映射为system.string datacolumn类型。

为了进一步调查,我们尝试使用ADODB记录集获取数据。我们使用了以下代码:

    Dim rs As New ADODB.Recordset
    Dim cn As New ADODB.Connection
    Dim szSql as string="select * from mytable"  
    cn.ConnectionString = "connectionstring"
    cn.Open()
    rs.CursorLocation = ADODB.CursorLocationEnum.adUseClient
    rs.Open(szSql, cn)
    rs.ActiveConnection = Nothing

在select查询中,我们有一个varchar2类型的列(例如COLUMN_A),它包含扩展的ascii字符(例如ÄÄ或ÈÈ)。当我们检查结果记录集时,我们找到了正确的字符(ÄÄ或ÈÈ)。

有谁知道如何告诉vbnet数据表不进行任何类型转换?

0 个答案:

没有答案