1

SQL Server から CheckedListBox にデータを取得するコードがあります。

    Dim queryString As String = "SELECT Facility FROM Database.dbo.Facility"
    Dim connection As New SqlConnection(connectionString)
    Dim command As New SqlCommand(queryString, connection)
    connection.Open()
    Dim dataReader As SqlDataReader = command.ExecuteReader()
    Dim var As New DataTable
    Dim source As New BindingSource
    source.DataSource = dataReader
    CheckList_Facility.DataSource = source
    CheckList_Facility.ValueMember = "Facility"
    connection.Close()

結果はうまくいきます。結果があると仮定します:

[ ]AA
[ ]BB
[ ]CC

「BB」があるかどうかを確認したい場合、自動的に「BB」がチェックされたので、

[ ]AA
[X]BB
[ ]CC

試しましたが失敗しました。何かが好き

     For Each item In CheckedList_Facility.Items
        If (item("Facility").ToString() = "BBB") Then
            CheckedList_Region.SelectedValue = True
    Next

実際に文字列を返すかどうかを試すために、コードをテストしました

For Each item In CheckedList_Facility.Items
    MsgBox(item("Facility").ToString())
Next

「AA」、「BB」、「CC」を返します

4

1 に答える 1

2

次のコードを試してください

Dim queryString As String = "SELECT Facility FROM Database.dbo.Facility"
Dim checkedValue As String = "BB"
Dim connection As New SqlConnection(connectionString)
Dim command As New SqlCommand(queryString, connection)

connection.Open()

Dim dataReader As SqlDataReader = command.ExecuteReader()

If dataReader.HasRows Then
    Do While dataReader.Read
        Dim facility As String = dataReader.Item("Facility").ToString()
        Dim checkedState As Boolean = facility = checkedValue

        CheckList_Facility.Items.Add(facility, checkedState)
    Loop
End If

connection.Close()
于 2013-07-11T16:30:44.880 に答える