コンボボックスに関して

解決


misamisa  2012-12-10 11:00:35  No: 147999  IP: [192.*.*.*]

環境:Visual Basic 2008

教えて下さい。

コンボボックスにデータベースから取得した値をセットし表示させていますが、
初期表示の場合、1行目を空白にしたいと考えています。

そこでいろいろHP等を検索してみましたが、下記のようにバインドしているような
場合の方法が見つからず、、、

どのようにすれば良いかを教えて頂ければ幸いです。

Try

    Dim dt1 = New DataTable
    Dim ds1 As New DataSet

    'SQL文作成
    Dim adp1 As New OracleDataAdapter("SELECT * FROM T_メーカーマスタ ORDER BY メーカーコード", Connection)

    ds1.Clear()

    'データセットの中にT_部品名称というテーブルを作成し、そこへ格納する。
    adp1.Fill(ds1, "T_メーカーコード")

    CMB_メーカー名.DataSource = ds1.Tables("T_メーカーコード")
    CMB_メーカー名.DisplayMember = "メーカー名称"
    CMB_メーカー名.ValueMember = "メーカーコード"

Catch ex As Exception

    ' 例外が発生した時の処理
    MessageBox.Show(ex.ToString, "例外発生")

End Try

よろしくお願いします。

編集 削除
shu  2012-12-10 11:08:58  No: 148000  IP: [192.*.*.*]

> adp1.Fill(ds1, "T_メーカーコード")
>
>    CMB_メーカー名.DataSource = ds1.Tables("T_メーカーコード")
この間で ds1.Tables("T_メーカーコード")の先頭レコードに
必要な行を挿入するとよいかと思います。

編集 削除
misamisa  2012-12-10 11:30:42  No: 148001  IP: [192.*.*.*]

shu様、いつもご回答ありがとうございます。

教えて頂いたように間に行追加でテーブルにデータをセットしましたが、なぜか最終行と
なってしまいます。

行の先頭に来る為には何か他に記述が必要なのでしょうか?

教えて下さい。

よろしくお願いします。


'データセットの中にT_部品名称というテーブルを作成し、そこへ格納する。
adp3.Fill(ds3, "T_仕入先コード")

Dim newCustomersRow As DataRow = ds3.Tables("T_仕入先コード").NewRow()

newCustomersRow("仕入先コード") = "000"
newCustomersRow("仕入先名称") = "  "

ds3.Tables("T_仕入先コード").Rows.Add(newCustomersRow)

CMB_依頼業者名.DataSource = ds3.Tables("T_仕入先コード")
CMB_依頼業者名.DisplayMember = "仕入先名称"
CMB_依頼業者名.ValueMember = "仕入先コード"

編集 削除
shu  2012-12-10 13:37:37  No: 148002  IP: [192.*.*.*]

追加ではなく挿入です
Addを使用せずInsertAtを使ってみて下さい。

編集 削除
misamisa  2012-12-10 14:03:38  No: 148003  IP: [192.*.*.*]

shu様、ご回答ありがとうございます。

イメージ通りのものができるようになりました!

ありがとうございました!!

編集 削除