这是我用VB.NET2005编的一个关于用户登录的简单程序,
public Class Form1    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim a As Long, b As Integer
        a = CLng("liyu")
        b = 123
        If TextBox1.Text = a And TextBox2.Text = b Then
            MsgBox("输入正确", 0, "提示")
        Else
            MsgBox("输入错误", 0, "提示")
            TextBox1.Text = ""
            TextBox2.Text = ""
            TextBox1.Focus()
        End If
    End Sub
End Class
它提示:在System.InvalidCastException 中第一次偶然出现的“Microsoft.VisualBasic.dll”类型的异常
是怎么回事?各位老大,帮帮忙。

解决方案 »

  1.   

    a = CLng("liyu") "liyu"这个字串能转换为long???
      

  2.   

    vb.net不熟悉,帮你顶吧,知道问题解决~~~~~~
      

  3.   

    Public Class Form1    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim a As String, b As Integer
            a = "liyu"
            b = 123
            If TextBox1.Text = a And TextBox2.Text = b Then
                MsgBox("输入正确", 0, "提示")
            Else
                MsgBox("输入错误", 0, "提示")
                TextBox1.Text = ""
                TextBox2.Text = ""
                TextBox1.Focus()
            End If    End Sub
    End Class
    我改了,是上面就对了,谢谢
      

  4.   

    Public Class Form1     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
            Dim a As String, b As Integer 
            a = "liyu" 
            b = 123 
            If TextBox1.Text = a And TextBox2.Text = b Then 
                MsgBox("输入正确", 0, "提示") 
            Else 
                MsgBox("输入错误", 0, "提示") 
                TextBox1.Text = "" 
                TextBox2.Text = "" 
                TextBox1.Focus() 
            End If     End Sub 
    End Class 
    我改了,是上面就对了,谢谢
      

  5.   

    我早在2楼指出你问题了a被定义为一个long (可视为sqlserver中的bigint)
    a=clng("liyu")
    clng去对一个字母串转化为long当然错了。而你改为 a 为string ,赋个字母串,当然是正确的了。