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