データベースからデータを取り込む辞書がいくつかあります。これはデータベースのサンプルです。DB のすべてのフィールドは文字列として表されます。
PromoStatus 3 Paid
PromoStatus 4 Escrowed
TickTransCode &H0 Valid cashable ticket
TickTransCode &H1 Valid restricted promo ticket
TickTransCode &H2 Valid nonrestricted promo ticket
BIllDenom 0 1
BIllDenom 1 2
ここに私が持っているコードがあります
Public Shared TickTransCode As New Dictionary(Of Byte, String)()
Public Shared BIllDenom As New Dictionary(Of Byte, Decimal)()
Public Shared PromoStatus As New Dictionary(Of Byte, String)()
Dim myReader As SqlDataReader = Nothing
Dim myCommand As New SqlCommand("select * from dictionary", myConnection)
myReader = myCommand.ExecuteReader()
While myReader.Read()
Select Case myReader.GetString(2)
Case "PromoStatus"
PromoStatus.Add(Convert.ToByte(myReader.GetString(3)), myReader.GetString(4))
Case "BillDenom"
BIllDenom.Add(Convert.ToByte(myReader.GetString(3)), Convert.ToByte(myReader.GetString(4)))
Case "TickTransCode"
TickTransCode.Add((myReader.GetString(3)), myReader.GetString(4))
End Select
End While
最初のケースは正常に動作します 3 ケース 適切な変換がわからないため、&HA は実際には 10 である必要があります &HF は 15 などです。DB に実際の数値を入れない理由を尋ねるかもしれませんが、16 進数は私が取得したものですドキュメントが使用する通信ストリームと番号なので、データの問題をトラブルシューティングするときにすべての番号を変換する必要はありません。
ここに私が得るエラーがあります
Input string was not in a correct format
また、データベースから辞書を作成するためのより良い方法があります。このサンプルよりもはるかに多くの辞書があり、それぞれにテーブルが必要です。DB を使用する理由は、再コンパイルせずに辞書に追加できるようにするためです。