【问题标题】:I got a Object reference not set to an instance of an object我的对象引用未设置为对象的实例
【发布时间】:2014-03-20 02:51:30
【问题描述】:

当我点击保存按钮内的保存按钮时出现此错误 错误是

“对象引用未设置为对象的实例”

Protected Sub btnWizardFinish_Click(sender As Object, e As EventArgs)
    If (rdoAprovalList.SelectedIndex = 1) Then
        SaveConsideration(4)
    Else
        SaveConsideration(1)
    End If
End Sub

这是保存子,包含保存和更新数据库中 DocumentStatusID 字段中的值

Private Sub SaveConsideration(ByVal DocumentStatusID As Integer)
    Dim Conn As New SqlConnection(strConn)
    Dim cmd As New SqlCommand
    Try
        If ((txtProducerID.Text.Trim.Length = 9)) Then

            cmd.Connection = Conn
            cmd.CommandType = CommandType.StoredProcedure
            cmd.CommandText = "spConsiderationSaving"
            cmd.Parameters.AddWithValue("@libDocumentID", txtProducerID.Text)
            cmd.Parameters.AddWithValue("@ProducerComments", txtProducerComment.Text)
            cmd.Parameters.AddWithValue("@DocumentStatusID", DocumentStatusID)
            cmd.Parameters.AddWithValue("@ConProduceThai", chkConproduceThai.Checked)
            cmd.Parameters.AddWithValue("@ConProducePolicy", chkConProducePolicy.Checked)
            cmd.Parameters.AddWithValue("@ConProduceIP", chkConProduceIP.Checked)
            cmd.Parameters.AddWithValue("@ConProduceDanger", chkConProduceDanger.Checked)
            cmd.Parameters.AddWithValue("@ConProducePeople", chkConproducePeople.Checked)
            cmd.Parameters.AddWithValue("@ConProduceManage", chkConProduceManage.Checked)
            cmd.Parameters.AddWithValue("@ConProduceMade", chkConProduceMade.Checked)
            Conn.Open()
            Dim ResponseText As Integer = DirectCast(cmd.ExecuteScalar, Int32).ToString
            If (ResponseText = 1) Then
                lblResponseResult.Text = "<img src='../images/icons/message-boxes/confirmation.png' /> บันทึกลงฐานข้อมูลเรียบร้อยแล้ว"
                If (DocumentStatusID = 3) Then 'Goto next step
                    AlertRedirects("redirect", pnlHint.ClientID, 3, "Verification.aspx")
                Else
                    AlertBoxs("alert", pnlHint.ClientID, 2)
                End If
            End If
        Else
            Dim sb As New System.Text.StringBuilder()
            sb.Append("<script type = 'text/javascript'>")
            sb.Append("window.onload=function(){")
            sb.Append("javascript:history.back();return false;")
            sb.Append("};")
            sb.Append("</script>")
            ClientScript.RegisterClientScriptBlock(Me.GetType(), "back", sb.ToString())
        End If
    Catch ex As Exception
        Response.Write("Error Save: " & ex.Message)
    Finally
        Conn.Close()

    End Try

End Sub

我认为这是参考某物的问题

【问题讨论】:

  • 请发布确切的错误
  • 我添加了一个确切的错误
  • NullReferenceException 的几乎所有情况都是相同的。请参阅“What is a NullReferenceException in .NET?”获取一些提示。
  • 如果您不知道它发生在哪一行,请调试它以找出答案。

标签: asp.net sql-server vb.net ado.net nullreferenceexception


【解决方案1】:

什么是错误,请说明。您发布的代码似乎有两个语法错误

  Dim ResponseText As Integer = DirectCast(cmd.ExecuteScalar, Int32).ToString
        If (ResponseText = 1) 

您正在为 ResponseText 分配一个字符串值,它是一个整数 第二个是如果条件应该有像If (ResponseText == 1)这样的双等号,因为它不是用于赋值的单等号

【讨论】:

  • 错误是对象引用未设置为对象的实例
  • 通过纠正我提到的上述错误来检查
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-20
  • 2012-06-15
相关资源
最近更新 更多