Parce que je ne sais toujours pas quelle est la clé/valeur de votre HashTable, je suppose qu'il n'y a qu'un seul enregistrement de db et les noms de champs (colonnes) de l'enregistrement sont la clé et la valeur de ceux-ci les champs sont la valeur dans le HashTable pour cette clé (fieldname).
Cela devrait fonctionner, mais je crains que votre exigence ne soit autre chose.
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
I ont fourni un échantillon DataReader mais les mêmes œuvres (je l'espère) pour un ADODB.Recordset (BTW, pourquoi avez-vous besoin de telles choses vétustes?).
Vous voulez mettre à jour le Hashtable selon les enregistrements de la base de données, où la colonne est la clé et les données sont la valeur? –
Quelle est votre clé et votre valeur dans Hashtable? –
j'ai mis un exemple en haut –