我收到了这3条警告。我想知道有什么办法能修好它,谢谢!
警告:
警告1变量'Id_Utilizador‘在被赋值之前被使用。在运行时可能会产生空引用异常。C:\Users\tiago\Desktop\Portaria\Portaria_Programa\Portaria_Programa\frmAdmin_NewEdit.vb 332 37 Portaria_Programa
警告2变量'Id_Modulo‘在被赋值之前被使用。在运行时可能会产生空引用异常。C:\Users\tiago\Desktop\Portaria\Portaria_Programa\Portaria_Programa\frmAdmin_NewEdit.vb 332 60 Portaria_Programa
警告3变量'DadosSai‘在被赋值之前被使用。在运行时可能会产生空引用异常。C:\Users\tiago\Desktop\Portaria\Portaria_Programa\Portaria_Programa\frmRel_EntradasSaidas.vb 222 37 Portaria_Programa
代码:
Private Sub NovoAcesso()
Dim Id_Utilizador
Dim Id_Modulo
Dim Count
If (cmbUtilizadores.Text <> "") Then
If (cmbModulos.Text <> "") Then
Cn.Open(cStringCon)
Rs.Open("Select count(id_utilizador), id_utilizador from acessos_utilizadores where nome_utilizador like '" & cmbUtilizadores.Text & "'", Cn)
Count = Rs.GetRows
Rs.Close()
If (Count(0, 0) > 0) Then
Id_Utilizador = Count(1, 0)
Rs.Open("Select count(id_modulo), id_modulo from acessos_modulos where nome_modulo like '" & cmbModulos.Text & "'", Cn)
Count = Rs.GetRows
Rs.Close()
If (Count(0, 0) > 0) Then
Id_Modulo = Count(1, 0)
Rs.Open("Select count(id_acesso) from acessos_acessos where id_utilizador = " & Id_Utilizador & "", Cn)
Count = Rs.GetRows
Rs.Close()
If (Count(0, 0) > 0) Then
Msg = "O utilizador seleccionado já dispõe de um acesso."
End If
Else
Msg = "Seleccione um módulo da lista."
End If
Else
Msg = "Seleccione um utilizador da lista."
End If
Cn.Close()
Else
Msg = "Seleccione um módulo da lista."
End If
Else
Msg = "Seleccione um utilizador da lista."
End If
If (Msg = "") Then
Cn.Open(cStringCon)
Cn.Execute("Insert into acessos_acessos(id_utilizador,id_modulo) " & _
"values (" & Id_Utilizador & ", " & Id_Modulo & ")")
Cn.Close()
ActGrid = 1
End If
Count = Nothing
End Sub发布于 2016-01-25 15:04:33
当您使用Id_Utilizador和Id_Modulo值时,它们可能没有值。( DadosSai值不在这段代码中,尽管听起来它具有相同的风险。)
这是因为你并不总是给他们分配一个值。为了举例说明,请考虑以下简化版本:
Dim SomeValue
If SomethingElse = True Then
SomeValue = SomeOtherValue
End If
UseTheValue(SomeValue)如果SomethingElse不是True,这段代码会做什么?任何东西都不会分配给这个变量,而且它可以很容易地破坏使用它的函数。
要么用默认值初始化变量,要么确保所有逻辑路径在使用变量之前将值分配给它们。
https://stackoverflow.com/questions/34995631
复制相似问题