簡體   English   中英

將 Select 查詢值訪問到變量中

[英]Access Select query values into variables

我正在嘗試創建一個項目應用程序,在所述應用程序中,我有一個數據庫來存儲用戶插入的數據,這些數據我稍后將用於各種事情。 我正在嘗試從數據庫中獲取重量和高度的值,並且我目前正在使用此代碼:

Sub load()
    Dim weight As Double
    Using getData = New OleDbCommand("SELECT TOP 1 Weight FROM Data WHERE ID_User = @ID_User ORDER BY id DESC", conn)
        getData.Parameters.Add("ID_User", OleDbType.VarChar).Value = My.Settings.currentUserID
        If conn.State = ConnectionState.Closed Then conn.Open()

        weight = getData.ExecuteScalar
    End Using

    Dim height As Integer
    Using getData = New OleDbCommand("SELECT TOP 1 Height FROM Data WHERE ID_User = @ID_User ORDER BY id DESC", conn)
        getData.Parameters.Add("ID_User", OleDbType.VarChar).Value = My.Settings.currentUserID
        If conn.State = ConnectionState.Closed Then conn.Open()

        height = getData.ExecuteScalar
    End Using
End Sub

這工作正常,但我試圖減少我的代碼,有沒有辦法在單個 select 查詢中 select 多個字段值?

例子:

SELECT TOP 1 Weight, Height FROM Data WHERE ID_User = @ID_User ORDER BY id DESC

我已經嘗試使用示例代碼,但由於某種未知原因,它只是將重量值返回給我兩次。

感謝@Jeremy@ParrishHusband幫助我解決了這個問題,如果有人需要解決方案,我就是這樣做的:

Sub load()
        Dim weight As Double
        Dim height As Integer

        Using getData = New OleDbCommand("SELECT TOP 1 Weight, Height FROM Data WHERE ID_User = @ID_User ORDER BY id DESC", conn)
            getData.Parameters.Add("ID_User", OleDbType.VarChar).Value = My.Settings.currentUserID
            If conn.State = ConnectionState.Closed Then conn.Open()

            Dim reader As OleDbDataReader = getData.ExecuteReader

            If reader.HasRows Then
                While reader.Read
                    weight = reader.GetString(0)
                    height = reader.GetString(1)
                End While
            Else
                MsgBox("No rows found")
            End If
            reader.Close()
        End Using
        MsgBox(weight & ", " & height)
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM