DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ComboBoxのItemをaccessから取得したい

環境/言語:[VB.NET]
分類:[.NET]

いつもお世話になっております. .NET初心者です.
ComboBox の Item を,MS Access から取得したいのですが,以下の状態から
進めなくなってしまいました.それらしいサイトにもあちこちとお邪魔して,
情報収集をしたのですが・・・

ComboBox1.Items.AddRangeの後に続く記述が判りません.
どなたかご教授して頂ければ幸いです.宜しくお願い致します.

(補足 : "PRO"はテーブル名で,その中の列名"PRO1"のデータを取得・表示させたいです)


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'[Connection]〜Access にアクセス
Dim CNN As System.Data.OleDb.OleDbConnection
CNN = New System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\seisei_key.mdb")
'接続開始
CNN.Open()
'[Command]
Dim CMDPRO As System.Data.OleDb.OleDbCommand
CMDPRO = CNN.CreateCommand()
CMDPRO.CommandText = "select * from PRO"
'[DataAdapter]
Dim DAPRO As System.Data.OleDb.OleDbDataAdapter
DAPRO = New System.Data.OleDb.OleDbDataAdapter(CMDPRO)
'[DataSet]
Dim DSPRO As System.Data.DataSet
DSPRO = New System.Data.DataSet
'[DataAdapter]を[DataSet]に割当て
DAPRO.Fill(DSPRO, "PRO")

'ComboBoxに表示
ComboBox1.Items.AddRange(?????)  ← ここの記述が判らない

'接続終了
CNN.Close()
End Sub
こんな感じで出来ると思います。
'DataTableの取り出し
Dim table As DataTable = DSPRO.Tables(0)
'DataTableから1行ずつデータを取得し、
'列名"PRO1"のデータをComboBoxに表示
Dim row As DataRow
For Each row In table.Rows
 ComboBox1.Items.Add(row("PRO1"))
Next
■No4625に返信(NowhereManさんの記事)

NowhereMan様

  天晴な青空です.早速のレスありがとうございました.

> 'DataTableの取り出し
> Dim table As DataTable = DSPRO.Tables(0)

  先ずテーブルを取り出すのですね!

> 'DataTableから1行ずつデータを取得し、
> '列名"PRO1"のデータをComboBoxに表示
> Dim row As DataRow

  ↑ここの発想がありませんでした!

> For Each row In table.Rows
>  ComboBox1.Items.Add(row("PRO1"))
> Next

  Row回数分回しながら Combo に Add していくのですね!


早速コーディングして試しました.見事に表示してくれました!!

書いて頂くと, そうだった! と頷くのですが,私のそこまでの発想が
無かったということは明らかなスキル不足でした.更に精進したいと思います.

他の方々も一緒に考えて頂き,誠にありがとうございました.深謝致します.
今後とも宜しくお願い致します. m(_ _)m
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板