[英]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.