簡體   English   中英

VB.net數據檢索和顯示

[英]VB.net data retrieval and display

因此,由於某種原因,我無法解決問題,我認為以下內容只是在我嘗試搜索的列中檢索值的第一個字母。 注意 :該數據庫稱為m1,總共包含11列)。

我首先在SQL Admin中測試了該查詢,並且該查詢正常運行(我認為)。

在此處輸入圖片說明

然后,我自己使用文檔編寫了這個文件,我認為我可能在某個地方犯了錯誤。

Dim hostnameQuery As String = "SELECT `HOSTNAME` FROM `m1` WHERE 1"
    Dim SQLConnection As New MySqlConnection(My.Settings.connStr)
    Dim cmd As New MySqlCommand(hostnameQuery, SQLConnection)

    Try
        SQLConnection.Open()
        cmd.ExecuteNonQuery()
        Dim reader As MySqlDataReader
        reader = cmd.ExecuteReader
        While reader.Read
            main.Label64.Text = (reader.GetChar(0))
        End While
    Catch ex As Exception
        MsgBox(ex.Message.ToString)
    Finally
        SQLConnection.Close()

    End Try

我將此添加到按鈕單擊中,因此當我單擊按鈕時,僅顯示字母“ M”,但值為“ M1”

在此處輸入圖片說明

我做錯了什么?

那是因為您只要求一個字符。 嘗試使用GetString()而不是GetChar()

main.Label64.Text = (reader.GetString(0))

您的代碼中有許多可以改進的地方。

首先,您可以刪除條件WHERE 1 ,因為它的意思是“ Everything”,因此它沒有用。

其次,您可以避免調用cmd.ExecuteNonQuery()因為它通常用於運行不返回任何內容的指令(例如INSERT )。

最后,如果只對返回的第一行感興趣,則可以避免While循環,而應使用cmd.ExecuteScalar()

總結一下,而不是:

cmd.ExecuteNonQuery()
Dim reader As MySqlDataReader
reader = cmd.ExecuteReader
While reader.Read
    main.Label64.Text = (reader.GetChar(0))
End While

只需這樣做:

main.Label64.Text = Convert.ToString(cmd.ExecuteScalar())

暫無
暫無

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

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