tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルリストボックスに表示
記事No2780
投稿日: 2005/12/16(Fri) 15:38
投稿者しーぽん
[OSのVer]:WindowsXP    [VBのVer]:VB.NET  
     Dim i, j As Integer
    '接続
    Dim oleCn = New OleDb.OleDbConnection
    '命令
    Dim oleCmd As OleDb.OleDbCommand
    '読込
    Dim oleReader As OleDb.OleDbDataReader'接続文字列を作成して接続を開始する

Private Sub Form7_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
MyBase.Load    
    setsuzoku()
        'レコード選択SQL文を作成してレコードを取得
        mondai_syutoku()

        '問題を読込みラベルに表示
        mondai_hyoji()

        '接続を終了
        oleCn.Close()
    End Sub

   Public Sub setsuzoku()
        '接続文字列を作成して接続を開始
        oleCn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" & "
Data
Source=E:\sotusei\bin\db1.mdb;" & "Persist Security Info=False"
        oleCn.Open()
    End Sub

    Public Sub mondai_syutoku()
        'レコード選択SQL文を作成してレコードを取得
        oleCmd = New OleDb.OleDbCommand("SELECT * FROM 国内車 WHERE メーカー別ID = 1&q
uot;,
oleCn)
        oleReader = oleCmd.ExecuteReader()
    End Sub

    Public Sub mondai_hyoji()
        '問題を読込みラベルに表示
        oleReader.Read()
        ComboBox3.Text = CStr(oleReader("バイク名"))
        oleReader.Close()
    End Sub

なのですが、実行すると一行しか表示されません。
どこをどう改善すれば宜しいでしょうか。
お願いします。

[ツリー表示へ]
タイトルRe: リストボックスに表示
記事No2784
投稿日: 2005/12/17(Sat) 15:57
投稿者なおこ(・∀・)
お世話になります。

DataReader を While ループで回して、
hhttp://support.microsoft.com/kb/309490/JA/
ComboBox3.Text でなく、ComboBox3.Items.Add(CStr(oleReader("バイク名"))
にしてください。

もしくは、
DataAdapter クラスを使って、DataAdapter の Fill メソッドで
DataSet や DataTable にデータを格納し、
ComboBox の DataSouce、ValueMember、DisplayMember に
適切な値を設定してください。

念のためですが、
> SELECT * FROM 国内車 WHERE メーカー別ID = 1
こちらの  SQL は
Access のクエリで実行した時、確実に複数の結果が取れていますか?

[ツリー表示へ]
タイトルRe^2: リストボックスに表示
記事No2785
投稿日: 2005/12/18(Sun) 09:47
投稿者しーぽん
[OSのVer]:Windows    [VBのVer]:VB.NET  
返信ありがとうございます。

SELECT * FROM 国内車 WHERE メーカー別ID = 1
の一文なのですが、一番最初の一行しか表示されません。

[ツリー表示へ]
タイトルRe^3: リストボックスに表示
記事No2786
投稿日: 2005/12/18(Sun) 20:54
投稿者じゃんぬねっと
参照先http://jeanne.wankuma.com/
> SELECT * FROM 国内車 WHERE メーカー別ID = 1
> の一文なのですが、一番最初の一行しか表示されません。

実際にデータが 1 件であれば正常ですが、
問題がなかったので報告のみ、ということでよいですか?
検証していなさそうにも見えてしまうので念のため。

[ツリー表示へ]
タイトルRe^4: リストボックスに表示
記事No2788
投稿日: 2005/12/19(Mon) 12:50
投稿者しーぽん
[OSのVer]:Windows    [VBのVer]:VB.NET  

返信ありがとうございます。
実データは300件ほど入っていましてそのうちの一件のみ表示されます。

検証の結果
こちらでエラーが出ます。

Public Sub mondai_syutoku()
        'レコード選択SQL文を作成してレコードを取得する()
        oleCmd = New OleDb.OleDbCommand("SELECT * FROM 国内車 WHERE メーカー別ID = 1&quo
t;)
ここ⇒  oleReader = oleCmd.ExecuteReader()
    End Sub


どのように改善すれば宜しいですか?
お願いします。

[ツリー表示へ]