我有这个表格,显示未完成的传输操作,以便经理可以完成它们,它只显示正在进行的操作,如果没有正在进行的操作,程序就会崩溃,我试图通过放置一个 MsgBox 来避免这种情况,但是它不起作用。我怎样才能使这个 msgbox 解决方案发挥作用?
Private Sub editarops_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Enabled = True
conexao.ConnectionString = "server = localhost; user =root; database = frota;"
conexao.Open()
comando.Connection = conexao
strsql = "SELECT codtrab, carga, origem, destino, estado, dataini FROM trabalhos where estado = 'En Route'"
comando.Connection = conexao
strsql = "SELECT codtrab, carga, origem, destino, estado, dataini FROM trabalhos where estado = 'En Route'"
comando.CommandText = strsql
r3 = comando.ExecuteReader
If bs.Count = 0 Then
bs.DataSource = r3
ComboBox1.Text = bs.Current(0)
tboxfunc.Text = bs.Current(1)
TextBox1.Text = bs.Current(2)
TextBox2.Text = bs.Current(3)
TextBox3.Text = bs.Current(5)
Atualizar.Enabled = True
Cancelar.Enabled = True
r3.Close()
Dim sStmt1 As String = "Select codtrab from trabalhos where estado = 'En Route' "
Dim cmd1 As New MySqlCommand(sStmt1, conexao)
Dim da1 As MySqlDataAdapter = New MySqlDataAdapter(cmd1)
Dim dt1 As New DataTable("trabalhos")
da1.Fill(dt1)
If dt1.Rows.Count > 0 Then
ComboBox1.DataSource = dt1
ComboBox1.DisplayMember = "codtrab"
Else
MsgBox("Não existem Funcionários", vbExclamation)
Me.Close()
Inicio.Show()
End If
da1.Dispose()
repor()
TextBox1.Enabled = False
TextBox2.Enabled = False
TextBox3.Enabled = False
TextBox4.Enabled = False
TextBox5.Enabled = False
TextBox6.Enabled = False
tboxfunc.Enabled = False
btcancelar.Visible = False
Else
MsgBox("Não existem Operações En Route", vbExclamation)
Me.Close()
Inicio.Show()
End If
End Sub
最佳答案
- 您应该将连接字符串放在Using block 中,或者手动处理它。不过,这通常不会导致崩溃。
- 如果 Inicio 是“调用”表单,您可以关闭此表单而不显示 Inicio。
- 尝试在
Me.Close
之后添加“Exit Sub”。
关于mysql - 如果 mysql 查询为空,则程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889749/