Поскольку я до сих пор не знаю, каков ключ / значение вашей HashTable, я предполагаю, что существует только одна запись из db, а имена полей (столбцы) записи являются ключом и значением этих полейэто значение в HashTable для этого ключа (имя поля).
Это должно работать, хотя я боюсь, что ваше требование - что-то другое.
Dim hash As New Dictionary(Of String, Object)'this is your "HashTable"'
Dim con As New SqlClient.SqlConnection(My.Settings.SQLSERV2_RM2)
Try
Using con
Using command As New System.Data.SqlClient.SqlCommand("SELECT idClaimStatus, ClaimStatusName FROM dimClaimStatus ORDER BY ClaimStatusName", con)
command.Connection.Open()
Using reader As System.Data.SqlClient.SqlDataReader = command.ExecuteReader
While reader.Read
For i As Int32 = 0 To reader.FieldCount - 1
Dim field As String = reader.GetName(i)
If Not hash.ContainsKey(field) Then
hash.Add(field, reader(i))
Else
hash(field) = reader(i)
End If
Next
End While
End Using
End Using
End Using
Catch ex As Exception
Throw
Finally
'nothing to do here because using closes the connection automatically'
End Try
Я предоставил образец DataReader, ното же самое работает (надеюсь) для ADODB.Recordset (кстати, зачем вам такие устаревшие вещи?).