mysql - 阅读器 if 和 else 语句
问题描述
我正在用 Visual Basic 练习编程我在 Visual Basic 中有 2 种形式。第一个表单有一个命令按钮,它将显示来自第二个表单的输入数据第二个表单有一个文本框,我需要在其中输入数据并保存它。
我以第二种形式输入的数据将其存储在 MySQL 中
第一个表格有一个名为“显示我的成绩”的命令按钮,如果我点击它,我想显示表格 2 并向我显示成绩。但是如果我没有输入任何成绩然后我点击“显示我的成绩”按钮它会崩溃我不知道错误。我尝试使用代码“如果 READER.HasRows Then: 但它仍然无法正常工作,如果 READER.Read then: else 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 中输入成绩,我只想显示一条消息“您目前还没有成绩”
请帮忙。
解决方案
具有匹配 End Using 的 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
推荐阅读
- twitter - Twitter GET 好友/丢失 API 限制
- angular - Angular 在模板中使用服务方法是一种反模式吗
- javascript - 如何将“非 lodash”函数插入 lodash 链(或模拟条件)
- hash - Redis 按字段和值进行哈希搜索
- druid - Druid中的百分比计算
- node.js - 在 cli 中启动 nodemon index.js 时出现弃用警告
- angular - Angular - 以反应形式格式化输入值
- php - 在 PHP 中为 MATCH AGAINST 准备的语句不起作用
- python - 如何在dict python 3.4的值列表中找到第一个唯一项
- ios - 在 Xamarin iOS 中的 UIActivityIndicatorView 中隐藏指示器