过去我使用下面的代码来找出表的列的数据类型。现在我正在使用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
答案 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))