如何使用VB.Net确定SQL Server表行的数据类型?



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

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

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

对于system.data.odbc也有类似的解决方案。

然而,我似乎找不到一种方法来从SQLClient连接的GetSchema方法填充的数据行表中获取数据类型。

任何想法?

提前感谢。

戴夫

这是一个加载DataGridView的代码片段。而不是使用表单,你只需加载一个本地DGV或使用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

如果你有一个已经存在的数据表(例如dbschema),你可以使用这个:

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

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

相关内容

  • 没有找到相关文章

最新更新