我正在设计一个应用程序站点,但问题是我在测试时一直收到Null Reference。我尝试在第一个屏幕上保存详细信息,并得到一个空引用警告:
NewRedesign.dll中发生了'System.NullReferenceException'类型的异常但未在用户代码中处理
附加信息:未将对象引用设置为对象的实例。
在以下代码行中:
hdrChange.GrantID = cbGrantAvailable.SelectedItem.Value.ToString
我正在努力解决这个问题,并觉得我必须遗漏一些东西。如果您的代码花时间阅读并可能提出建议,我们将不胜感激。请不要给我发送链接,因为我已经阅读了Stack Overflow和其他网站上的几乎所有内容,但我仍然无法解决问题。谢谢。其余代码如下:
Protected Sub btnSave_Click(sender As Object, e As EventArgs)
FocusSet = False
errCount = 0
ErrDetails.Text = ""
If (Not IsPostBack) AndAlso (Not IsCallback) Then
txtGrantAvailable.Visible = False
cbGrantAvailable.Visible = True
cbGrantAvailable.SelectedIndex = 0
Session("ProjectTypeID") = (From o In dc1.ProjectTypes Where o.ProjectTypeDescription Like "%Cycle Parking%").FirstOrDefault
Populate_Details()
End If
'Contact Details
If txtVisibleDiv.Text = "divContactDetails" Then
' Determine if any errors occur
If txtLeadOfficerFirstName.Text.Length = 0 Then
ErrDetails.Text = ErrDetails.Text + "Please select a Lead Officer for your application." + vbNewLine
ErrDetails.Visible = True
If FocusSet = False Then
txtProjectTitle.Focus()
FocusSet = True
End If
errCount = errCount + 1
End If
If txtProjectTitle.Text.Length < 3 Or txtProjectTitle.Text = "" Then
ErrDetails.Text = ErrDetails.Text + "Please enter a title for your application." + vbNewLine
ErrDetails.Visible = True
If FocusSet = False Then
txtProjectTitle.Focus()
FocusSet = True
End If
errCount = errCount + 1
End If
If txtProjectDescription.Text.Length < 3 Or txtProjectDescription.Text = "" Then
ErrDetails.Text = ErrDetails.Text + "Please enter a description for your application." + vbNewLine
ErrDetails.Visible = True
If FocusSet = False Then
txtProjectTitle.Focus()
FocusSet = True
End If
errCount = errCount + 1
End If
' If there are any errors then ensure the errors are displayed
If FocusSet = True Then
ErrDetails.ForeColor = Drawing.Color.Red
ErrDetails.Height = 20 * errCount
' Show the Overview screen at the beginning
If (Not ClientScript.IsStartupScriptRegistered("showonlyonev2")) Then
Page.ClientScript.RegisterStartupScript _
(Me.GetType(), "showonlyonev2", "showonlyonev2('divContactDetails');", True)
End If
If (Not ClientScript.IsStartupScriptRegistered("showonlyonev2")) Then
Page.ClientScript.RegisterStartupScript _
(Me.GetType(), "showonlyonev2", "showonlyonev2('divContactDetails');", True)
End If
Return
End If
lblProjectName.Text = txtProjectTitle.Text
Dim SustransUser As Boolean
Dim UserID As String = Session("UserID").ToString
If Session("IsSustrans") = "False" Then
SustransUser = False
Else
SustransUser = True
End If
Dim hdrChange = (From o In dc1.GrantApplicationHeaders Where o.GrantApplicationID.ToString = Session("CurrentProjectID").ToString).FirstOrDefault
If Not IsNothing(hdrChange) Then
hdrChange.GrantID = cbGrantAvailable.SelectedItem.Value.ToString
hdrChange.GrantApplicationUserID = UserID
hdrChange.GrantApplicationSustransUser = SustransUser
hdrChange.GrantApplicationOrganisationID = Session("OrganisationID").ToString
hdrChange.GrantApplicationOrganisationAddressID = Session("OrganisationAddressID")
hdrChange.GrantApplicationLeadOfficerID = ddlSelectOrganisationOfficers.SelectedItem.Value.ToString
hdrChange.GrantApplicationTitle = txtProjectTitle.Text
hdrChange.GrantApplicationDescription = txtProjectDescription.Text
hdrChange.GrantApplicationProjectTypeID = Session("ProjectTypeID")
dc1.SubmitChanges()
Else
Dim NewGrantApplicationHeader As New GrantApplicationHeader
With NewGrantApplicationHeader
.GrantID = cbGrantAvailable.SelectedItem.Value.ToString
'.GrantApplicationID = Session("CurrentProjectID").ToString
.GrantApplicationUserID = UserID
.GrantApplicationSustransUser = SustransUser
.GrantApplicationOrganisationID = Session("OrganisationID").ToString
.GrantApplicationOrganisationAddressID = Session("OrganisationAddressID").ToString
.GrantApplicationLeadOfficerID = ddlSelectOrganisationOfficers.SelectedItem.Value.ToString
.GrantApplicationTitle = txtProjectTitle.Text
.GrantApplicationDescription = txtProjectDescription.Text
.GrantApplicationProjectTypeID = Session("ProjectTypeID").ToString
End With
dc1.GrantApplicationHeaders.InsertOnSubmit(NewGrantApplicationHeader)
dc1.SubmitChanges()
Dim GetCurrentProjectID = (From o In dc1.GrantApplicationHeaders Where o.GrantID = cbGrantAvailable.SelectedItem.Value.ToString And o.GrantApplicationUserID = UserID And o.GrantApplicationSustransUser = SustransUser And o.GrantApplicationOrganisationID = Session("OrganisationID").ToString And o.GrantApplicationOrganisationAddressID = Session("OrganisationAddressID").ToString And o.GrantApplicationLeadOfficerID = ddlSelectOrganisationOfficers.SelectedItem.Value.ToString And o.GrantApplicationTitle = txtProjectTitle.Text And o.GrantApplicationDescription = txtProjectDescription.Text).FirstOrDefault
If Not IsNothing(GetCurrentProjectID) Then
Session("CurrentProjectID") = GetCurrentProjectID.GrantApplicationID.ToString
End If