0


0

ハッシュテーブルのフィールドをadbbレコードセットにインポートする

こんにちは、ハッシュテーブルとadodb.recordsetがあります。 ハッシュテーブルのフィールドの名前は、adodb.recordsetフィールドと同じです

ex

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

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

レコードセットtotには、フィールド「a」、「b」、「d」があります

レコードセットにハッシュテーブル値をインポートしたい

ありがとう

1 Answer


0


HashTableのキー/値が何であるかまだわからないため、dbからのレコードは1つだけで、レコードのフィールド名(列)がキーであり、これらのフィールドの値は値であると想定していますそのキー(フィールド名)の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でも同じように(うまくいけば)機能します(ところで、なぜそんな時代遅れのものが必要なのですか?)。