在VB.NET中使用ADO.NET确定数据类型

时间:2014-08-22 01:54:00

标签: vb.net ado.net

过去我使用下面的代码来找出表的列的数据类型。现在我正在使用ADO.NET,我无法通过VB.NET和ADO.NET找到一种方法。我如何使用ADO.NET做到这一点?我是否必须枚举所有数据类型,或者是否存在" isnumeric"或者" isstring"类型功能?

Select Case rs(sColumnName).Type
    Case ADODB.DataTypeEnum.adUnsignedSmallInt, ADODB.DataTypeEnum.adUnsignedTinyInt, ADODB.DataTypeEnum.adUnsignedBigInt, ADODB.DataTypeEnum.adUnsignedInt, ADODB.DataTypeEnum.adSingle, ADODB.DataTypeEnum.adTinyInt, ADODB.DataTypeEnum.adSmallInt, ADODB.DataTypeEnum.adInteger, ADODB.DataTypeEnum.adBigInt, ADODB.DataTypeEnum.adDecimal, ADODB.DataTypeEnum.adDouble, ADODB.DataTypeEnum.adNumeric, ADODB.DataTypeEnum.adCurrency '
        sType="NUMERIC"
    Case ADODB.DataTypeEnum.adVarChar, ADODB.DataTypeEnum.adLongVarChar, ADODB.DataTypeEnum.adLongVarWChar, ADODB.DataTypeEnum.adVarWChar, ADODB.DataTypeEnum.adWChar, ADODB.DataTypeEnum.adChar ' ADD ALL THE STRING TYPES
        sType="STRING"                                
End Select

1 个答案:

答案 0 :(得分:1)

您可以使用SqlDataReader课程中的GetDataTypeName

示例:

Dim con As New SqlConnection("Data Source=(local);Database=mydb;Integrated Security=SSPI;")
Dim reader As SqlDataReader
Dim cmd As New SqlCommand
cmd.CommandText = "select * from table1"
cmd.Connection = con
reader = cmd.ExecuteReader

MessageBox.Show(reader.GetDataTypeName(1))