2010-10-26 33 views
0

Bonjour, vous disposez d'une table de hachage et d'un adodb.recordset. Les noms de hachage du champ sont les mêmes que les champs adodb.recordset Comment puis-je importer la valeur de la zone de hachage dans les champs adodb.recordset sans le faire manuellement?Importer les champs de hashtable dans un jeu d'enregistrements adodb

ex

Dim Tot As ADODB.Recordset 
Dim h As Hashtable = New Hashtable 

h("a") = 1 
h("b") = 2 
h("d") = 4 

tot recordset a des champs: "a", "b", "d"

je veux importer les valeurs Hashtable dans recordset

grâce

+0

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? –

+0

Quelle est votre clé et votre valeur dans Hashtable? –

+0

j'ai mis un exemple en haut –

Répondre

0

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?).