comboboxとTextBoxのデータ連結 への返答

投稿で使用できる特殊コードの説明。(別タブで開きます。)
本名は入力しないようにしましょう。
投稿した後で削除するときに使うパスワードです。返答があった後は削除できません。
返答する人が目安にします。相手が小学生か社会人かで返答の仕方も変わります。
最初の投稿が質問の場合、質問者が解決時にチェックしてください。(以降も追加書き込み・返信は可能です。)
※「過去ログ」について書くときはその過去ログのURLも書いてください。

以下の返答は逆順(新しい順)に並んでいます。

投稿者 えりん  () 投稿日時 2008/7/11 22:36:00
>>1 
るきおさんさっそくのアドバイスありがとうございます! 
方法2のやり方でスムーズにできました! 
 
まだVBまもないのでデータベース系は難しいです。。 
 
日々勉強ですね(~~) 
 
ご教示ありがとうございました!
投稿者 るきお  () 投稿日時 2008/7/11 21:43:00
いろいろ方法はありますが、とりあえず2つほど紹介します。 
VB2005、Option Strict Offで試しました。 
 
■方法1 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
 
        Dim table As DataTable = GetData() 
        ComboBox1.DataSource = table 
        ComboBox1.DisplayMember = "ProductID" 
 
    End Sub 
 
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged 
 
        TextBox1.Text = ComboBox1.SelectedItem("ProductName") 
 
    End Sub 
    Private Function GetData() As DataTable 
 
        'ここにOracleなどからデータを取得する処理を書く 
        '※この例ではこの部分は直書きで代替とする。 
 
        Dim table As New DataTable 
        table.Columns.Add("ProductID", GetType(String)) 
        table.Columns.Add("ProductName", GetType(String)) 
 
        table.Rows.Add("AA", "CDケース") 
        table.Rows.Add("BB", "鉛筆") 
        table.Rows.Add("CC", "分度器") 
 
        Return table 
 
    End Function 
 
■方法2 
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
 
        Dim bind As Binding 
        Dim table As DataTable = GetData() 
 
        bind = New Binding("Text", table, "") 
 
        ComboBox1.DataSource = table 
        ComboBox1.DisplayMember = "ProductID" 
 
        ComboBox1.DataBindings.Add("Text", table, "ProductID") 
        TextBox1.DataBindings.Add("Text", table, "ProductName") 
 
    End Sub 
 
    Private Function GetData() As DataTable 
 
        'ここにOracleなどからデータを取得する処理を書く 
        '※この例ではこの部分は直書きで代替とする。 
 
        Dim table As New DataTable 
        table.Columns.Add("ProductID", GetType(String)) 
        table.Columns.Add("ProductName", GetType(String)) 
 
        table.Rows.Add("AA", "CDケース") 
        table.Rows.Add("BB", "鉛筆") 
        table.Rows.Add("CC", "分度器") 
 
        Return table 
 
    End Function 
 
こんなんでいかがでしょうか?
投稿者 えりん  () 投稿日時 2008/7/11 21:15:00
いつも拝見させていただいています。 
当方VB初心者です。。 
 
データベースを使った開発をしています。 
データベースにあるテーブルの商品IDをcomboboxに 
商品名をtextboxに表示させたいのですが 
comboboxとtextboxを連結させる方法がわかりません。 
 
comboboxに仮に商品ID"AA"を入れると 
textboxに商品名、仮に"CDケース"という表示に 
したいのですがどなたかご存知の方アドバイス 
をいただけないでしょうか。。 
 
comboboxのTextChangedイベントで実行させたいのですが・・なかなかうまくいかず(T_T) 
 
接続は非接続型です。 
データベースはoracleを使っています。(こんな情報でいいのでしょうか・・すみません;;) 
 
心優しきどなたかご教示お願いいたします(>_<;)