- - PR -
comboBoxにSQLの結果を格納したい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-12-17 09:41
皆様初めまして。ゆきおといいます。
Oracleのデータディクショナリを検索するシステムをC#で作成しています。 comboBoxにSELECT文の結果を格納したいのですが、いまいち方法がわからなくて困ってい ます。 【環境】 OS:Windows2000 SP4 Oracle:Oracle9i Release 9.2.0 トライアル版 言語:Visual C#.NET + Oracle Data Provider for .NET(ODP.NET) .Net Framework v1.1 【ソースコード】 class ConnectOracleDB { [STAThread] static void Main() { Application.Run(new Form1()); } private void button1_Click(object sender, System.EventArgs e) { // @ユーザーID、パスワード、データ・ソース(TNS)などの接続パラメータを設定 // Create the connect object OracleConnection con = new OracleConnection(); con.ConnectionString = "User Id=xxxx;Password=pppp; Data Source=dddd;"; // Instantiate OracleDataAdapter to create DataSet OracleDataAdapter myAdapter = new OracleDataAdapter(); // Fetch Product Details myAdapter.SelectCommand = new OracleCommand ("SELECT * FROM v$instance",con); DataSet myDataSet = new DataSet(); // A検索 myAdapter.Fill(myDataSet); // B質問箇所 this.comboBox1.DataSource = myDataSet } } 【質問事項】 OracleのDBまでの接続(@)と検索するコマンド(A)はわかっているのですが、comboBox に格納する方法(B)がわかりません。どなたか教えてください。 | ||||||||
|
投稿日時: 2003-12-17 10:00
this.comboBox1.DataBind();でしょうか。
MSDNのDropDownList.DataSourceのサンプルに書いてあります。 MSDN等調べてから質問したほうが良いと思いますよ。 | ||||||||
|
投稿日時: 2003-12-17 10:02
そこまでできているなら後少し。
もう一度、MSDNの、ComboBox.DataSourceの説明を見直してみてください。 ヒント: ・DataSourceは、「テーブル」を指定するプロパティです ・とすると、「列」を指定するプロパティがあるはずです ・リストコントロールには、「表示用」と「値取得用」の、2つの「列」があります | ||||||||
|
投稿日時: 2003-12-17 10:09
DropDownListとcomboBoxは違うコントロールです。見かけは同じですけど。 System.Web.UI.WebControls.DropDownListにはDataBindメソッドがありますが、 System.Windows.Forms.ComboBoxにはないんです。 | ||||||||
|
投稿日時: 2003-12-17 10:28
すっかり勘違いしてました。 最近、Web開発ばかりやっていて頭がそっちモードになってるもので。 見なかったことにしてください(汗 | ||||||||
|
投稿日時: 2003-12-17 11:24
junya_s0さん、Jittaさん返信ありがとうございます。ゆきおです。
応援ありがとうございます。 ヒントですがうーんすいません。MSDNのListControl.DataSourceを確認したのですが、 「列を指定するプロパティ」とは何を意味するのでしょうか?「リストコントロールには、 「表示用」と「値取得用」の、2つの「列」があります」とはpublic object DataSource {get; set;}のことでしょうか?この意味 {get; set;} がよくわかりませんです。 ちょっと以下のコードを入力してみました。 // B質問箇所 this.comboBox1.DataSource = myDataSet 結果はcomboBoxに何故かSystem.Data.DataRowViewと何列の表示されてしまいました。 以上途中経過です。もう少しがんばってみます。 | ||||||||
|
投稿日時: 2003-12-17 11:37
「解説」に、このように書いてありませんか?
Display…表示する Value…値 DataSourceは、DataSet.Table[0]の方が良いかもしれません。 | ||||||||
|
投稿日時: 2003-12-17 13:40
Jittaさんどうもです。ゆきおです。
わかりました。というかできました。 myAdapter.SelectCommand = new OracleCommand ("SELECT table_name FROM v$dictinary",con); this.comboBox1.DataSource = myDataSet.Tables[0]; this.comboBox1.DisplayMember = "TABLE_NAME"; ※DisplayMemberは大文字指定ではないと認識されませんでした。 以上のように修正すると見事表示ができました。Jittaさんのヒント形式って調べる作業が入るので非常に勉強になります。素晴らしいですね。 まだまだMSDNから情報を収集する能力が弱いので力をつけたいところです。 Jittaさんありがとうございます。おかげさまで3日ほど悩んだ内容がクリアできました。 |
1