Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio BC42104错误代码如何修复此错误?_Visual Studio_Visual Studio 2010_Visual Studio 2012 - Fatal编程技术网

Visual studio BC42104错误代码如何修复此错误?

Visual studio BC42104错误代码如何修复此错误?,visual-studio,visual-studio-2010,visual-studio-2012,Visual Studio,Visual Studio 2010,Visual Studio 2012,警告BC42104:变量“pass”在赋值之前使用。运行时可能会导致空引用异常 这是我的代码: Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click Dim uname As String = "" Dim pword As String Dim username As String = "" Dim pass As String If Tex

警告BC42104:变量“pass”在赋值之前使用。运行时可能会导致空引用异常

这是我的代码:

Private Sub btnLogin_Click(sender As Object, e As EventArgs) Handles btnLogin.Click
    Dim uname As String = ""
    Dim pword As String
    Dim username As String = ""
    Dim pass As String
    If TextBox1.Text = "" Or TextBox2.Text = "" Then
        MsgBox("Please fill the info")
    Else
        uname = TextBox1.Text
        pword = TextBox2.Text
        Dim query As String = "Select Password From Register where Username= '" & uname & "';"
        Dim dbsource As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Gui\Documents\Database4.accdb"
        Dim conn = New OleDbConnection(dbsource)
        Dim cmd As New OleDbCommand(query, conn)
        conn.Open()
        Try
            pass = cmd.ExecuteScalar().ToString
        Catch ex As Exception
            MsgBox("Username does not exit")
        End Try
        If (pword = pass) Then
            MsgBox("Login success")
            Reg.Show()
            If Reg.Visible Then
                Me.Hide()
            End If

        Else
            MsgBox("login Failed")
            TextBox1.Clear()
            TextBox2.Clear()
        End If
    End If
End Sub

正如错误所说,您没有初始化变量pass,在某些情况下,您可能会使用它

确切地说,如果控件落在“catch”块中,变量“pass”将不会有任何值,这意味着可能在到达
if(pword=pass)
语句时,该变量没有任何值

要修复此错误,只需在初始化时为变量指定null值或空字符串。例如,使用以下语句:

Dim pass As String = "";

请使用您喜爱的搜索引擎并键入错误号。你会发现成千上万的链接来解释这个问题。其中很多都是同一个网站上的问题和答案。我已经做了,但大多数都太复杂了,无法理解。我是编程新手,我想了解更多。但是我一直看到这个错误,所以让我们再次尝试阅读错误消息:变量'inst'在赋值之前就被使用了变量inst不在上面的代码中。因此,错误消息与此代码段无关。最好在使用这个名为inst的变量的地方查找您的代码,并在此处添加该代码。很抱歉,该变量是“pass”而不是“inst”,没有回答这个问题。好吧,现在假设您的行pass=cmd.ExecuteScalar()。ToString会触发一个异常。代码将继续执行catch块,而不在变量pass中设置值。代码从catch块退出后,将pass的值与pword进行比较。你现在看到问题了吗?编译器试图告诉您这个问题,但不允许编译您的代码。您只需将pass变量设置为默认值即可解决此问题,就像您使用uname所做的那样