views:

11

answers:

1

Hi have a hashtable and an adodb.recordset. The field's names of hashtable are same of fields adodb.recordset How can i import the fields value of hashtable in fields adodb.recordset without do it manually?

ex

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

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

the recordset tot has fields: "a", "b", "d"

i want import the hashtable values in recordset

thanks

A: 

Because i still don't know what the key/value of your HashTable are, i assume that there is only one record from db and the field-names(columns) of the record are the key and the value of these fields are the value in the HashTable for that key(fieldname).

This should work, although i'm afraid that your requirement is something else.

    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 provided a DataReader sample but the same works (hopefully) for an ADODB.Recordset(btw, why do you need such antiquated things?).

Tim Schmelter