- - PR -
comboBoxにSQLの結果を二つ以上格納したい
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-09-12 02:11
SQLServerのデータディクショナリを検索するシステムをVB2005で作成しています。
comboBoxにSELECT文の結果を二つ以上格納したいのですが、 言語:Visual Bacic 2005 【ソースコード】 Dim con As String = String.Empty Dim da As SqlDataAdapter Dim ds As New DataSet Dim SQLkubun As String = "SELECT 区分,区分詳細 FROM 区分リスト" con &= "Data Source = xxxxx;" con &= "Database = xxxDB;" con &= "Integrated Security = SSPI;" da = New SqlDataAdapter(SQLkubun , cn) da.Fill(ds, "区分リスト") BindingSource1.DataSource = ds BindingSource1.DataMember = "区分リスト" ComboBox1.DisplayMember = "区分" ComboBox1.DataSource = BindingSource1 このコードだとComboBox1に"区分"だけはちゃんと表示できるのですが、 ComboBox1.DisplayMember = "区分" & "区分詳細" このようにするとComboBox1に「System.Data.DataRowView」と表示されてエラーになってしまいます。 二つ以上の結果を表示させるにはどうすればよいのでしょうか? | ||||||||||||
|
投稿日時: 2007-09-12 07:43
さかもとと申します。
今手元に環境が無いので正攻法かどうか分かりませんが、
を Dim SQLkubun As String = "SELECT 区分 + 区分詳細 FROM 区分リスト" にしては・・・? _________________ ------------------------------------------ 拝啓、さかもとと申します♪ | ||||||||||||
|
投稿日時: 2007-09-12 09:52
これは当然だと言わざるを得ません。 DisplayMember プロパティは String 型です。"区分" & "区分詳細" などと書いても "区分区分詳細" として渡されているのと相違ありません。 ComboBox のデータバインド機構は、"区分区分詳細" というフィールドが自身の DataSource に含まれているかを確認し、存在しているならばそのフィールドの内容が表示されます。 が、今回の例では存在しないのですから '型名' が表示されるわけです。 2 つ以上のフィールドを表示したい場合、標準の ComboBox でやれることは知れています。 さかもとさんの案は桁数を揃えて 1 つのフィールドに連結して出力する方法です。 私ならば ListView や専用の 3rd パーティ製品を使います。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-09-12 16:24
さかもとさん、じゃんぬねっとさんありがとうございます。
にしてみましたがやはり「System.Data.DataRowView」と表示されてエラーになってしまいました。SQL文で実行したところ、(列名なし)になっていたので ComboBox1.DisplayMember = "区分" ComboBox1.DisplayMember = "" ComboBox1.DisplayMember = "(列名なし)" と、ひとつずつ試してみましたが駄目でした。
なるほど。それでは表示されないのも当然ということですね。
とありますが、一応ComboBox で2 つ以上のフィールドを表示することは可能なのでしょうか? 仕事内容の都合もありますので、できましたらComboBoxで表示したいのですが・・・ | ||||||||||||
|
投稿日時: 2007-09-12 16:33
さかもとです。
Dim SQLkubun As String = "SELECT (区分 + 区分詳細) AS 区分 FROM 区分リスト" で ComboBox1.DisplayMember = "区分" だと如何でしょうか? _________________ ------------------------------------------ 拝啓、さかもとと申します♪ | ||||||||||||
|
投稿日時: 2007-09-12 16:42
おお!できました!さかもとさんありがとうございます! | ||||||||||||
|
投稿日時: 2007-09-12 16:48
先の投稿で、フィールドを連結して (さかもとさんの案) 桁数を揃えるというのが 1 つの案であるとお話しました。 それに加えるならパイプ線 (仕切り線) をつけることもできます。 ですが相当頑張らないとその程度しかできないですよという意味です。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 |
1