• ベストアンサー

コンボボックス

コンボボックスにデータベースの値セットしたいですが、 具体的なやり方がわかりません。 VS.Net2003 データはデータセットに設定しているのですが OleDbDataAdapter1.Fill(DsBurando1) cmb1.databind()やると コンボボックスの中身は一件目のデータしかなくて、 しかも立て表示しているのですが・・・ どんな設定が必要でしょうか。 よろしくおねがいします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.3

> BorderColor='<%# DataBinder.Eval(DsBurando1, "Tables[ブランドコード].DefaultView.[0].ブランド名称") %>' は変ですよね BorderColorにブランド名称を接続してますから プロパティでDataMember、DataSourse、DataTextFieldを設定してあるなら コード側で設定する必要はないと思いますよ OleDbDataAdapter1.Fill(DsBurando1) cmb1.databind() で表示されるんですけどね 当方のテストは MDBファイルをoleDbDataAdapterで接続して ブランドコードテーブルに ID,ブランド名称,Dataフィールドを作成 DataSetには このID,ブランド名称フィールドを取得 で コンボボックスの DataSource,DataMember,DataTextFieldをプロパティウィンドウで設定 Page_Loadイベントで   if not IsPostBack then     OleDbDataAdapter1.Fill(myDS1)     DropDownList1.Databind()   end if といったコーディングです

sinomori
質問者

お礼

なるほどです。 DropDownList1.Databind()してなかったです。^^; 正しく表示できました。 本当にありがとうございます。

その他の回答 (2)

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

設定するのは データセットなど       DataSource = ds データセットのテーブル名   DataMember = "myTable01" リストに表示する列名     DataTextField = "Name" リストから取得するデータ列名 DataValueField = "Code" といった具合です 取得する際には ValueFieldを取得したいなら SelectedValue TextFieldを取得したいなら SelectedItem.Text といった具合です

sinomori
質問者

補足

どうも、教えていただいた設定方法を試したんですが、コンボボックスの中身が表示しません。 aspxファイルは <TR> <TD style="HEIGHT: 21px">ブランド</TD> <TD style="HEIGHT: 21px"><asp:dropdownlist id="ddlBrand" runat="server" Height="24px" Width="288px" BorderColor='<%# DataBinder.Eval(DsBurando1, "Tables[ブランドコード].DefaultView.[0].ブランド名称") %>' DataSource="<%# DsBurando1 %>" DataMember="ブランドコード" DataTextField ="ブランド名称"> </asp:dropdownlist></TD></TR> vbファイルは page_loadイベントに OleDbDataAdapter1.Fill(DsBurando1) ddlBrand.DataSource = DsBurando1 ddlBrand.DataMember = "ブランドコード" ddlBrand.DataTextField = "ブランド名称" なにか設定足りないですか。 初心者で、すみません。 よろしくお願いします。

  • Kuppycat
  • ベストアンサー率50% (109/216)
回答No.1

コンボボックスのリストにDBのデータを設定したいと言うことでよろしいでしょうか。 以下のように設定します。 cmb1.DataSource = DsBurando1 cmb1.DisplayMember = "DISPNM" <== 表示する内容のカラム名 cmb1.ValueMember = "CODE" <== 実際のデータとして扱うカラム名 この場合のデータセットは、リスト用に更新するものとは別のデータセットを用意してください。

sinomori
質問者

補足

回答ありがとうございます。 DisplayMember使っているのですが、コンボボックスの部品にDisplayMemberがないです。。。 DataMemberならありますけど、同じですか。

関連するQ&A

  • コンボボックス続き

    あるコンボボックスとデータベース接続して、 データベースある列の中身コンボボックスに表示されたんですが、 ページ表示される瞬間はもうコンボボックスにデータが入っています。 ページ表示されて、最初はコンボボックスになにも表示されていない状態したいです。 今の表示方法は dataMemberとdataTextFelidの設定して ddlBrand.DataBind()しています。 説明が下手かもしれないですが、詳しい方がいらしゃったら教えてください。 よろしくお願いします。

  • Datagridviewのコンボボックスにつきまして

    vb2005です。 DataGridViewコントロールのデータセットにデータベースのテーブルをセットしています。 そのDataGridViewの1列目にコンボボックスを設定し、 そのコンボボックスのデータセットにも別のテーブルをセットしたいのです。 Dim dAdp As OleDb.OleDbDataAdapter Dim dSet As New DataSet Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=C:\DB.mdb;") dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 商品", cn) dAdp.Fill(dSet, "t_商品") DataGridView1.DataSource = dSet.Tables("t_商品") dAdp = New OleDb.OleDbDataAdapter("SELECT * FROM 品種", cn) dAdp.Fill(dSet, "t_品種") Dim col As System.Windows.Forms.DataGridViewComboBoxColumn = DataGridView1.Columns(1) ・・・・★ col.DataSource = dtSet.Tables("t_品種") col.DisplayMember = "品種名" col.ValueMember = "品種コード" 上記のように記述しているのですが、★の部分で、下記のエラーになります。 型 'System.Windows.Forms.DataGridViewTextBoxColumn' のオブジェクトを型 'System.Windows.Forms.DataGridViewComboBoxColumn' にキャストできません データソースを指定したDataGridViewの列にはコンボボックス等の設定は 出来ないのでしょうか?

  • 【Access】コンボボックスの値の変更方法

    フォームにコンボボックスを配置し、下記の動作をさせたいと思ったのですが、1は出来たものの2が出来ませんでした(値集合ソースの中身は表示されるものの、選択してもコンボボックスに反映されませんでした)。 1. フォームオープン・・・データベースのcmb1の値より、対応する文字をコンボボックスに表示する。 2. コンボボックスの値の変更・・・プルダウンから値集合ソースに表示されている任意の値を選択し、コンボボックスに設定する。 その為、どうすれば値を変更できるようになるかアドバイスいただける方がいらっしゃいましたら、ご教示の程よろしくお願いします。 なお、初期状態から下記を変更しております。 【テーブル】 テーブル名:tbl フィールド名:ID,cmb1 値:1,2 【フォーム】 フォーム名:form1(コンボボックスを一つ配置) フォームのレコードソース:SELECT Choose(tbl.cmb1,"A","B","C") AS nm_cmb FROM tbl WHERE (((tbl.ID)=1)); コンボボックス 列数:2 列幅:0cm;3cm コントロールソース:nm_cmb 値集合タイプ:値リスト 値集合ソース:1;A;2;B;3;C 連結列:2 上記の状態で起動時のコンボボックスの中身は"B"と表示されるものの、コンボボックスのプルダウンメニューを表示して値を変更しようとしても出来ない事が確認できると思います。 以上、よろしくお願いします。

  • コンボボックスを選択したい

    VB2008で開発しています。 Me.cmb1.DataSource = tableData1 Me.cmb1.DisplayMember = "名前" Me.cmb1.ValueMember = "ID" としてコンボボックスにテーブルデータを セットしました。 IDが"2"のデータを選択状態にしたいのですが どうしたらよいでしょうか。

  • access2003コンボボックスの質問です

    Access2003+sql2005で コンボボックスのテーブルに顧客マスタ(顧客コード+顧客名)を値集合にセットしています。 最大レコード件数を10万にしているのですが、中身はちょうど1万件しか入ってきません。 コンボボックスは1万件が最大なのでしょうか? ご存知の方、教えて下さい。

  • リストボックスの値をコンボボックスでコントロール

    Access 2007をつかってデータの整理を早急にしなければならなくなり、簡単なAccessデータベースを作ってデータ入力をやっています。データの特性上もっと簡単に入力ができるはずなのですが、勉強不足でできません。ご教授ください。 テーブル(tbl) にフィールドF1とF2があります。これを元にフォームFrmを作りました。Frmにコンボボックス(Cmb)とリストボックス(Lst)があります。Cmb の値はc1, c2, c3がありF1に入力されます。Lst の値はl1, l2, l3がありF2に入力されます。Cmbでc1かc2を選んだときは、Lst のl1かl2が選択される可能性がありますが、Cmbでc3を選んだときにはl3しか選択肢はありません。ここで入力の手間を省くためc3を選択したときにl3が自動で選択される(F2にl3が自動で入力される)ようにしたいのですが、こんなことできるのでしょうか? 

  • コンボボックスにつきまして

    JComboBoxを使って、コンボボックスを作成したいのすが、 表示は名称で、実際の値取得はコードで取りたいのですが、 可能でしょうか? 例えば、 コード  名称 001   りんご 002   ぶどう 003   パイン というデータをセットし、 コンボボックスのドロップダウンでは「りんご」を選択したときには、 「001」という値を取得したいのです。 よろしくお願いします。

    • ベストアンサー
    • Java
  • コンボボックスについて

    皆様、こんにちは。 エクセルで幾つかのコンボボックスの値を足算したいですが、やり方がわかりません。 具体的に申し上げますと、 1.0から200まで選べられるコンボボックスを用意しました。 2.これらの選択された値を合計した結果を出したいです。 ご存知の方いらっしゃいましたら、教えて頂きたいです。やはり、VBAを使わなければだめでしょうか。。 どうぞよろしくお願いいたします。

  • コンボボックスに付いて

    エクセル2000を使用しています。コンボボックスに付いて教えて下さい。 今コンボボックス(ユーザーフォーム使用)を12個一組 計5組 にて簡単な選択データを作っています。 コンボボックスの値はシートより読み出し値を表示させているのですが、この12個のコンボボックス1~12みたいな感じで 簡単に一まとめ出来ないでしょうか? 12個一組は内容は同じです。とりあえず一つ一つのコンボボックスに対してシートを参照するようにしましたが、 もっと簡単に簡略化出来ないものなのでしょうか? ご教示お願い致します。初心者ですので例などで教えて頂ければ幸いです。

  • 2のコンボボックスの関連

    環境:Access2003 VB6.0 2つのコンボボックス関連させたいが、やり方がよくわからないです。 たとえばSCHOOLというテーブルに1YearとClassのフィールドがあります。そこで、YearのコンボボックスでYearフィールドの値を選択して、Classのコンボボックスに選択された値に対する値をセットしたいです。 例(1年と選択して、2個目のコンボボックスにA、B、C、Dとセットしたいです。 初心者で、説明がわかりにくいかもしれないですが、よろしくお願いします。 以下データベースの接続設定 Dim m_formlording As Integer Dim CONN As ADODB.Connection 'レコードセット Dim RECO As ADODB.Recordset Private Sub ConnOpen() Set CONN = New ADODB.Connection '接続文字列の設定 CONN.ConnectionString = "provider=Microsoft.jet.oledb.4.0;" _& "data source=D:\DB\dbstudent.mdb" 'コネクションをオープン CONN.Open End Sub Private Sub RecoSet() Set RECO = CONN.Execute("Select * From SCHOOL") End Sub 詳しい方、ご教授ください。

専門家に質問してみよう