1

こんにちは皆さん、ValueMemberに問題があります。コードを見てください:

   conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;Data source=" & _
"c:\\magazyn.mdb"
    ' Try
    conn.Open()

    da2 = New OleDbDataAdapter(sql1, conn)

    da2.Fill(ds2)
    ' DataGridView1.DataSource = ds.Tables("Nazwa")
    ' DataGridView1.Update()
    ComboBox4.DataSource = Nothing

    ComboBox4.DataSource = ds2.Tables(0)

    ComboBox4.ValueMember = Nothing
    ComboBox4.DisplayMember = "Nazwa_Towaru"
    ComboBox4.ValueMember = "Kod_Towaru"

    MessageBox.Show(ComboBox4.Text + "-" + ComboBox4.ValueMember)

    ' Catch ex As Exception
    'MessageBox.Show("Brak podłączonej bazy/problem z podłączeniem do bazy")
    '  Finally
    conn.Close()
    '  End Try

MessageBoxは次のようなものを表示するはずです:グラフィックカード-123ASDの最初の要素は「Nazwa_Towaru」、2番目は「Kod_Towaru」ですが、MBは次のようなものを表示します:グラフィックカード-「Kod_Towaru」。初めてDATASETの「Kod_Towaru」列が空だと思いますが、これを確認すると、列にデータがあります。

私はこれと同じコードを持つ別のコンボボックスも持っており、それは素晴らしい働きをしているので、なぜこれがそうではないのですか?すべての変数はローカルであるため、コリデートはありません。

4

1 に答える 1

0

ComboBox4.SelectedIndex = -1 だと思います。コンボ ボックスをデータ ソースにバインドした後、選択したインデックスを 0 に設定します (コンボ ボックスにデータがある場合)。

サージ

于 2012-11-15T15:21:17.010 に答える