教えて下さい。
以下のように、Oracleから取得したデータを、コンボボックスのデータとして表示させたいと
考えていますが、下記のように記述した場合、コンボボックスのデータが、Windows7では表示され
ますが、WindowsXP では表示されません。
PC個別の問題か、あるいはWindows update かと思い、複数台のPCや最新のWindows Updateを
しましたが、現象は変わりませんでした。
何か記述に問題があるか?ご指摘頂ければ幸いです。
よろしくお願いします。
《記述内容》
Dim Connection As New OracleConnection
Dim Command As OracleCommand
'Oracleへのコネクションの確立
Connection.ConnectionString = "User Id=XXXXX; Password=00000; Data Source=XE"
'オープン
Connection.Open()
'コマンド作成
Command = Connection.CreateCommand
Try
Dim dt1 = New DataTable
Dim ds1 As New DataSet
Dim Select_SQL As String
'SQL文作成
Select_SQL = "SELECT 部品コード,部品名称 FROM T_部品名称"
Select_SQL = String.Concat(Select_SQL, " ORDER BY 部品コード")
Dim adp1 As New OracleDataAdapter(Select_SQL, Connection)
ds1.Clear()
'データセットの中にT_部品名称というテーブルを作成し、そこへ格納する。
adp1.Fill(ds1, "T_部品名称")
' コンボボックスに部品名称テーブルを連結する
CMB_部品名称.DataSource = ds1.Tables("T_部品名称")
' コンボボックスに部品名称を表示する
CMB_部品名称.DisplayMember = "部品名称"
' 部品コードをSelectdValueで取得する
CMB_部品名称.ValueMember = "部品コード"
Catch ex As Exception
例外が発生した時の処理
MessageBox.Show(ex.ToString, "例外発生")
End Try
手元にもうWinXPが無いので未確認ですが・・・
OSの差異によるComboBoxの挙動の差異ではないでしょうか?
CMB_部品名称.SelectedIndex = 0
を足せば表示される?
※ adp1.Fill(ds1, "T_部品名称") の部分
Dim iRet as Integer
iRet = adp1.Fill(ds1, "T_部品名称")
とでもして、取得数が、1以上であるのかもご確認
下さい。取得できていなければ、表示されるはず
がない・・・
以上。
オショウ様、ご回答ありがとうございます。
あれから色々試してみたけ結果、どうもSQL分の中にカタカナがまじっている為に
SQL文でエラーが起こっていたようでした。
そんな事があるのかと思っていましたが、項目名をダブルコーテーションで囲うように
したところ、問題なくXPでも表示させる事ができました。
せっかく教えていただいたのに申し訳ありません。
またよろしくお願いします。
ツイート | ![]() |