我正在练习visual basic编程 我在visual basic中有2个表单。 第一种形式有一个命令按钮,它将显示第二种形式的输入数据 第二种形式有一个文本框,我需要输入数据并保存。
我在第二种形式输入的数据将其存储在MySQL中
第一个表单有一个名为“显示我的成绩”的命令按钮,如果我单击,我想显示表单2并显示成绩。它确实有效,但如果我没有输入任何等级,然后我点击“显示我的等级”按钮它崩溃我不知道错误。我尝试使用代码“if READER.HasRows Then: 但它仍然无法运作 如果READER还试过。然后: 其他MessageBox.Show(“目前没有成绩输入”) 请帮忙。
这是我在表单1中的命令按钮中的当前代码。
Me.Visible = False
Form2.Show()
MySqlConn = New MySqlConnection
MySqlConn.ConnectionString = "server=localhost;userid=root;password=qwerty;database=ssg"
Dim COMMAND As New MySqlCommand
Dim READER As MySqlDataReader
MySqlConn.Open()
COMMAND.Connection = MySqlConn
COMMAND.CommandText = "select grade from gradetable"
READER = COMMAND.ExecuteReader
Form2.TextBox1.Text = READER("grade")
End Sub
只要我先输入成绩,它就可以正常工作,但是如果我没有输入任何等级,它就会崩溃。
如果我点击表格1中的“显示我的成绩”按钮而不输入表格2中的成绩,我想只显示一条消息“你目前还没有成绩”
请帮忙。
答案 0 :(得分:0)
具有匹配结束使用的Using语句。这取代了Dim。即使出现错误,它也可确保正确关闭和处理对象。这对于应尽快关闭的连接尤为重要。
我使用连接的构造函数来传递连接字符串。设置属性很好。这只是保存了一行代码。
与命令构造函数相同。它可以采用命令文本和连接。节省一点打字。
你有正确的想法;使用.HasRows
。您只需添加READER.Read
即可获得第一条记录,如jmcilhinney的评论中所述。
Private Sub GetGrade()
Using MySqlConn As New
MySqlConnection("server=localhost; userid=root; password=qwerty; database=ssg")
Using COMMAND As New MySqlCommand("select grade from gradetable", MySqlConn)
MySqlConn.Open()
Using READER As MySqlDataReader = COMMAND.ExecuteReader
If READER.HasRows Then
READER.Read()
Form2.TextBox1.Text = READER("grade")
Else
MessageBox.Show("Sorry, no grade yet.")
End If
End Using
End Using
End Using
End Sub