1

私は現在、仕事で取り組んでいるプロジェクトの MDB データベースから VB.Net のフォームにドロップ ボックスを作成しようとしています。

「cancmov」というデータベースに「Months」というテーブルがあり、取得しようとしているフィールドは MoveMonth と呼ばれます。

私が使用している現在のコードは次のとおりです:-

Private Sub drpMovedFrom_SelectedIndexChanged(sender As System.Object, e As System.EventArgs) Handles drpMovedFrom.SelectedIndexChanged


    Dim ConnnectionString As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Admin\Desktop\CancellationsAndMovements\CancellationsandMovements\cancmov.mdb"
    Dim db As String = "SELECT MoveMonth FROM Months"
    Dim cn As New OleDbConnection(ConnnectionString)
    Dim da As New OleDbDataAdapter(db, cn)
    Dim ds As New DataSet()

    da.Fill(ds, "MoveMonth")

    With drpMovedFrom
        .DataSource = ds.Tables("MoveMonth")
        .SelectedIndex = 0
    End With

End Sub

おそらく上記から収集できるように、私は現在学習の過程にあるため、上記の多くのことを理解しようとしています. 私は実際に、Googleで見つけた同様の質問から上記のコードを引き出しました。私が自分でこれを行う方法を学ぶことができるリソースを私に指摘するだけであっても、どんな助けも大歓迎です.

よろしくお願いします。

4

1 に答える 1

4

すぐに使えるいくつかのこと:

ドロップダウン インデックスが変更されたときに、このコードを呼び出しています。常にゼロに設定されるため、おそらくあなたが望むものではありません。

また、括弧を使用して使い捨てオブジェクトを囲んでみてください。

Private ds As New DataSet()
Private ConnnectionString As String = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Admin\Desktop\CancellationsAndMovements\CancellationsandMovements\cancmov.mdb"

Protected Overrides Sub OnLoad(e As EventArgs)
  Dim db As String = "SELECT MoveMonth FROM Months"

  Using cn As New OleDbConnection(ConnnectionString)
    Using da As New OleDbDataAdapter(db, cn)
      da.Fill(ds, "MoveMonth")
    End Using
  End Using

  With drpMovedFrom
      .DisplayMember = "MoveMonth"
      .DataSource = ds.Tables("MoveMonth")
      .SelectedIndex = 0
  End With

  MyBase.OnLoad(e)
End Sub

また、ComboBox には、DataSource にマップする DisplayMember および ValueMember プロパティがあります。DisplayMember はリストに表示される値です。ValueMember は通常、表示されるプロパティの ID 値です。

于 2012-08-08T20:03:11.847 に答える