0

我正在编写一些代码,允许客户端连接到各种外部数据源,包括 OLEDB、ODBC 和 SQL Server。system.data.oledb在我的 VB.NET 代码中,如果我使用or建立连接system.data.odbc,我可以使用system.data.oledb.oledbTypeorsystem.data.odbc.odbcType方法来测试 Integer 或 Double 数据类型。

例如,在下面的代码片段中,是使用 OLEDB 连接方法dr填充的数据表中的数据行。GetSchema

--- Start Example-------
If dr("Data_Type") = System.Data.OleDb.OleDbType.Integer Then
  ...
End
--- End Example-------

有一个类似的解决方案system.data.odbc

但是,我似乎找不到从连接GetSchema方法填充的数据行表中获取数据类型的方法SQLClient

有任何想法吗?

提前致谢。

戴夫

4

1 回答 1

0

这是加载 DataGridView 的片段。无需使用表单,您只需加载本地 DGV 或使用作为 DataTable 的 DBSchema。

    Private Sub DataDictionaryToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DataDictionaryToolStripMenuItem.Click
    If g.DBSchema Is Nothing Then
        Using con As New SqlConnection(g.OISConnectString)
            con.Open()
            g.DBSchema = con.GetSchema("Columns") ' full DB Schema
        End Using
    End If
    Dim frm As New frmSearch2
    frm.inDataView = New DataView(g.DBSchema) ' dv
    frm.inSQLName = "Database Schema"
    frm.Show()
End Sub

如果你有一个现有的 DataTable (eggDBSchema),你可以使用这个:

    For Each col As DataColumn In g.DBSchema.Columns
        Debug.Print(col.DataType.ToString)
    Next

但这将返回 ADO DataType(我认为)而不是 SQL 数据类型。

于 2014-07-02T22:37:54.880 回答