有人能帮我解决这个错误“NullReferenceException 未处理"吗? [英] Can anybody help me to solve this error "NullReferenceException was unhandled"?

查看:23
本文介绍了有人能帮我解决这个错误“NullReferenceException 未处理"吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用的是 Visual Studio 2013,这部分代码是关于讲师发布咨询时间表的.但是当我点击发布按钮时,它显示了这个错误.这是我的代码..

I'm using Visual Studio 2013, this part of the code is about lecturer publishing consultation schedule. But when i clicked the publish button, it shows me this error. Here's my code..

    Imports System.Data.OleDb

公开课咨询时间表

Private Sub publishbutton_Click(sender As Object, e As EventArgs) Handles publishbutton.Click
    Dim label As String = "Label"

    Dim sql As String
    Dim cmd As OleDbCommand

    Dim time1 As String = vbNull
    Dim time2 As String = vbNull
    Dim time3 As String = vbNull
    Dim time4 As String = vbNull

    Dim day1 As String = Nothing
    Dim day2 As String = vbNull
    Dim day3 As String = vbNull
    Dim day4 As String = vbNull
    Dim day5 As String = vbNull

    Dim available1 As String = Nothing
    Dim available2 As String = vbNull
    Dim available3 As String = vbNull
    Dim available4 As String = vbNull


    For i = 11 To 15
        time1 = Label7.Text

        For k = 16 To 20
            time2 = Label8.Text
            For t = 21 To 25
                time3 = Label9.Text
                For u = 26 To 30
                    time4 = Label10.Text
                Next
            Next
        Next
    Next

    For i = 11 To 30
        If (i = 11) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available1 = "Available"
            Else
                available1 = "Unavailable"
            End If

        ElseIf (i = 16) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available2 = "Available"
            Else
                available2 = "Unavailable"
            End If

        ElseIf (i = 21) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available3 = "Available"
            Else
                available3 = "Unavailable"
            End If

        ElseIf (i = 26) Then
            day1 = Label2.Text
            If (Me.Controls(label & i.ToString).BackColor = Color.Lime) Then
                available4 = "Available"
            Else
                available4 = "Unavailable"
            End If
        End If

    Next


    For k = 11 To 30
        If (k = 12) Then
            day2 = Label3.Text
        ElseIf (k = 17) Then
            day2 = Label3.Text
        ElseIf (k = 22) Then
            day2 = Label3.Text
        ElseIf (k = 27) Then
            day2 = Label3.Text
        End If

    Next

    For t = 11 To 30
        If (t = 13) Then
            day3 = Label4.Text
        ElseIf (t = 18) Then
            day3 = Label4.Text
        ElseIf (t = 23) Then
            day3 = Label4.Text
        ElseIf (t = 28) Then
            day3 = Label4.Text
        End If

    Next

    For u = 11 To 30
        If (u = 14) Then
            day4 = Label5.Text
        ElseIf (u = 19) Then
            day4 = Label5.Text
        ElseIf (u = 24) Then
            day4 = Label5.Text
        ElseIf (u = 29) Then
            day4 = Label5.Text
        End If

    Next

    For y = 11 To 30
        If (y = 15) Then
            day5 = Label6.Text
        ElseIf (y = 20) Then
            day5 = Label6.Text
        ElseIf (y = 25) Then
            day5 = Label6.Text
        ElseIf (y = 30) Then
            day5 = Label6.Text
        End If

    Next

    Dim conn = New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=scheduledatabase.accdb;Persist Security Info=False;")
    sql = "INSERT INTO consultationschedule(Time, Day, Available)VALUES(@Time,@Day,@Available)"

    conn.Open()
    cmd = New OleDbCommand(sql, conn)
    cmd.Parameters.AddWithValue("@Time", time1)
    cmd.Parameters.AddWithValue("@Day", day1)
    cmd.Parameters.AddWithValue("@Available", available1)
    'cmd.ExecuteNonQuery()

    Dim f As Integer = cmd.ExecuteNonQuery()
    If (f >= 1) Then
        ToolStrip1.Text = f.ToString & " record added successfully"
    Else
        ToolStrip1.Text = "Unable to add record"

    End If
    MessageBox.Show("User Widrawed", "Widrawed", MessageBoxButtons.OK, MessageBoxIcon.Information)
    conn.Close()
End Sub

推荐答案

Me.Controls(label & i.ToString).BackColor = Color.Lime

Me.Controls("Label11").BackColor = Color.Lime
...
Me.Controls("Label30").BackColor = Color.Lime

你有 30 个编号的标签吗?

Do you have 30 numbered labels?

你可以这样做

If Not Me.Controls(label & i.ToString) Is Nothing Then
    Me.Controls(label & i.ToString).BackColor = Color.Lime
End If

这篇关于有人能帮我解决这个错误“NullReferenceException 未处理"吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆