none
資料庫篩選問題? RRS feed

  • 問題

  •  

    Dim connStr, selectCmd As String
            Dim selectname As String
            selectname = 1
            selectCmd = "SELECT P_name FROM article_data WHERE  A_no ='" & selectname & "' "
            connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=account.mdb"
            Dim conn As OleDbConnection, cmd As OleDbCommand, myReader As OleDbDataReader
            conn = New OleDbConnection(connStr)
            conn.Open()
            cmd = New OleDbCommand(selectCmd, conn)
            myReader = cmd.ExecuteReader()


            If myReader.Read() Then

                TextBox1.Text = myReader.Item("P_name") & vbNewLine

            End If
            conn.Close()

    我篩選一個資料表article_data,把其中一個欄位A_no當主要條件,然後我要把有"1"的全部列出來,可是我利用上面的程式後,卻只出現第一筆符合的出現在textbox1.text裏....

    是哪裏有問題許要修改一下....

    2008年2月19日 上午 11:01

解答

  • Code Snippet

    ...

     

    While myReader.Read()

           TextBox1.Text = Text1Box.Text & myReader.Item("P_name") & vbNewLine

    End While

    ...

     

     

     

    2008年2月19日 上午 11:11
    版主

所有回覆

  • If myReader.Read() Then

        TextBox1.Text = myReader.Item("P_name") & vbNewLine

    End If
    這一段應該要加個迴圈去跑,不然只會執行一次而已。

    2008年2月19日 上午 11:10
    版主
  • Code Snippet

    ...

     

    While myReader.Read()

           TextBox1.Text = Text1Box.Text & myReader.Item("P_name") & vbNewLine

    End While

    ...

     

     

     

    2008年2月19日 上午 11:11
    版主
  •  

    試出來了,可以用了,我以為是SQL語法的問題,一直翻書看都覺得沒錯,原來是我沒有做重覆拉資料的動作....肛溫哦!!
    2008年2月19日 下午 02:01
  •  

    我現在正試著要把拉出來的資料放到一堆用動態產生的button

     

    在這個部份一直試不出來要怎麼在產生動態button的同時也放進去

     

    動態產生button

    Dim bt As Integer = 1
            For y As Integer = 0 To 420 Step 60
                For x As Integer = 0 To 420 Step 60
                    Dim qbty As New Button
                    Me.Controls.Add(qbty)
                    With qbty
                        .Name = "qbty" & bt
                        '.Text = "qbty" & bt & myReader.Item("P_name")
                        .Text = "qbty" & bt
                        .FlatStyle = FlatStyle.Popup
                        .Top = y
                        .Left = .Left + x
                        .Height = 60
                        .Width = 60
                    End With

                    bt = bt + 1

                Next x
            Next y

     

     

    在裏面我有試著用 .Text = "qbty" & bt & myReader.Item("P_name") 放進去,結果一跑下去停在那裏不動,也沒有畫面出來,真傷腦筋.....
    2008年2月19日 下午 02:17
  • 我弄出來了,可以在產生動態button的同時把資料放進去...

     

    Code Snippet

    Dim connStr, selectCmd As String
            Dim selectname As String
            selectname = 1
            selectCmd = "SELECT P_name FROM article_data WHERE  A_no ='" & selectname & "' "
            connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=account.mdb"
            Dim conn As OleDbConnection, cmd As OleDbCommand, myReader As OleDbDataReader
            conn = New OleDbConnection(connStr)
            conn.Open()
            cmd = New OleDbCommand(selectCmd, conn)
            myReader = cmd.ExecuteReader()
            qbtyPanel.BackColor = Color.DodgerBlue
            Dim bt As Integer = 1
            While myReader.Read()
                Dim qbty As New Button
                qbtyPanel.Controls.Add(qbty)
                With qbty
                    .Name = "qbty" & bt
                    .Text = .Text & myReader.Item("P_name")
                    .Font = New Font("新細明體", 10)
                    .Image = New Bitmap("..\\..\\yellowbt.jpg")
                    .FlatStyle = FlatStyle.Popup
                    .Height = 60
                    .Width = 60
                    ' AddHandler qbty.Click, AddressOf qbty_Click
                End With
                bt = bt + 1
            End While
            conn.Close()

     

    但會發生一個問題,當我再次開啟這個form的時候,會把第一次讀進來的再加上又再讀一次的資料,button就重覆了,是否要在關閉的時候必需做什麼動作才可??

     

    2008年2月19日 下午 09:30
  •  

    我好像都在自問自答耶~~~~

     

    像我上述的問題,除了在關閉表單時,用dispos()之外,各位都怎麼做?

    是否用dispose()來釋放表單不佔記憶體的好處,如讀取時間的問題是否需要考慮?不dispose()會佔記憶體,但再呼叫時會不會比較快等的優缺點,各位的想法如何?

     

    2008年2月20日 上午 05:45