代码之家  ›  专栏  ›  技术社区  ›  Sam Holder Brian Adams

我应该如何使用DbConnection以不可知的方式确定数据库列类型。GetSchema?

  •  0
  • Sam Holder Brian Adams  · 技术社区  · 16 年前

    我已经成功地完成了前3步,但在第4步遇到了问题。最初,我连接到一个sql server数据库,并使一切正常工作。现在我已经用oracle XE数据库尝试过了,我似乎遇到了问题。

    当我从模式中查询DATA_TYPES时,使用SQLServer2005数据库,我得到的信息如下:

    Type name     ProviderDbType    DataType
    
    nchar           10              System.String
    int           8               System.Int32
    

    Column_Name     Data_Type
    Id               nchar
    Length           int
    

    Column_Name     Data_Type   Type_Name
    Id                   8         VARCHAR2
    Length              10         int
    

    很抱歉问了这么长的问题,希望问题清楚。

    2 回复  |  直到 16 年前
        1
  •  1
  •   KM.    16 年前

    最好在应用程序级别编写一个包装器函数,其中包含解释每个DB的特定代码,然后返回一个通用格式

        2
  •  1
  •   Mitch Wheat    16 年前

    您不应该要求用户选择提供商。让用户选择数据库,让应用程序确定使用哪个提供者。

    OleDbType Enumeration ?

    native OLE DB Oracle的供应商。

    另见 Data Type Mappings in ADO.NET