I've been working on a page that has ddls populating other ddls and form fields. Right now I'm getting this error:
erver Error in '/HRIService' Application.
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
Line 115: ' Try
Line 116: cmd = New System.Data.SqlClient.SqlCommand("SELECT cusID, FirstName+ ' ' + LastName AS ContactName FROM Contacts WHERE cusID=@cusID ORDER BY LastName, FirstName", conn)
Line 117: cmd.Parameters.AddWithValue("@cusID", DropDownList1.SelectedValue)
Line 118:
Line 119: conn.Open()
Source File: C:\Inetpub\wwwroot\HRIService\ServiceExpress\AddCall.aspx.vb Line: 117
Here is my code:
Imports System.Data
Imports System.Data.SqlClient
Partial Class AddCall
Inherits System.Web.UI.Page
Dim conn As New System.Data.SqlClient.SqlConnection("Data Source=IT-P02\SQLEXPRESS;Initial Catalog=HRIService;Integrated Security=True")
Dim cmd As System.Data.SqlClient.SqlCommand
Dim reader As System.Data.SqlClient.SqlDataReader
Dim reader2 As System.Data.SqlClient.SqlDataReader
Protected Sub Page_Load(ByVal S As Object, ByVal E As System.EventArgs)
If Not Page.IsPostBack Then
Dim bol As Boolean = False
Dim conID As String = Trim(Request.QueryString("conID")).ToString()
Dim cusID As String = Trim(Request.QueryString("cusID")).ToString()
If Len(cusID) > 0 And Len(conID) > 0 Then
Dim FirstName As TextBox = TryCast(FormView1.FindControl("FirstName"), TextBox)
Dim LastName As TextBox = TryCast(FormView1.FindControl("LastName"), TextBox)
Dim Company As TextBox = TryCast(FormView1.FindControl("Company"), TextBox)
Dim Address1 As TextBox = TryCast(FormView1.FindControl("Address1"), TextBox)
Dim Address2 As TextBox = TryCast(FormView1.FindControl("Address2"), TextBox)
Dim Phone As TextBox = TryCast(FormView1.FindControl("Phone"), TextBox)
Dim City As TextBox = TryCast(FormView1.FindControl("City"), TextBox)
Dim State As TextBox = TryCast(FormView1.FindControl("State"), TextBox)
Dim Zip As TextBox = TryCast(FormView1.FindControl("Zip"), TextBox)
' Try
cmd = New System.Data.SqlClient.SqlCommand("SELECT cusID, FirstName+ ' ' + LastName AS ContactName FROM Contacts WHERE cusID=@cusID ORDER BY LastName, FirstName", conn)
cmd.Parameters.AddWithValue("@cusID", cusID)
conn.Open()
reader = cmd.ExecuteReader()
If reader.HasRows Then
DropDownList2.DataSource = reader
DropDownList2.DataTextField = "ContactName"
DropDownList2.DataValueField = "cusID"
DropDownList2.DataBind()
DropDownList2.Items.Insert(0, ("-- Choose a Contact --"))
DropDownList2.SelectedIndex = DropDownList2.Items.IndexOf(DropDownList2.Items.FindByValue(conID))
Else
DropDownList2.Items.Insert(0, ("-- Error: No Contacts Found --"))
End If
reader.Close()
cmd = New System.Data.SqlClient.SqlCommand("SELECT a.Company, a.Address1, a.Address2, b.FirstName, b.LastName, c.City, c.State, c.Zip FROM Customers a JOIN Contacts b ON a.cusID=b.cusID JOIN Zip c ON a.cusID=c.cusID WHERE a.cusID=@cusID and b.ContactID=@conID", conn)
cmd.Parameters.AddWithValue("@cusID", cusID)
cmd.Parameters.AddWithValue("@ContactID", conID)
reader2 = cmd.ExecuteReader()
If reader.HasRows Then
While reader.Read()
Company.Text = reader.Item("Company").ToString
Address1.Text = reader.Item("Address1").ToString
Address2.Text = reader.Item("Address2").ToString
Phone.Text = reader.Item("Phone").ToString
FirstName.Text = reader.Item("FirstName").ToString()
LastName.Text = reader.Item("LastName").ToString()
City.Text = reader.Item("City").ToString()
State.Text = reader.Item("State").ToString()
Zip.Text = reader.Item("Zip").ToString()
End While
End If
reader.Close()
conn.Close()
' Catch
' End Try
bol = True
End If
cmd = New System.Data.SqlClient.SqlCommand("SELECT cusID, Company FROM Customers", conn)
' Try
conn.Open()
reader = cmd.ExecuteReader()
If reader.HasRows Then
DropDownList1.DataSource = reader
DropDownList1.DataTextField = "Company"
DropDownList1.DataValueField = "cusID"
DropDownList1.DataBind()
DropDownList1.Items.Insert(0, ("-- Choose a Company --"))
If bol = True Then DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(DropDownList1.Items.FindByValue(conID))
Else
DropDownList1.Items.Insert(0, ("-- Error: No Companies Found --"))
End If
reader.Close()
conn.Close()
' Catch
' End Try
End If
End Sub
Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList1.SelectedIndexChanged
Dim FirstName As TextBox = TryCast(FormView1.FindControl("FirstName"), TextBox)
Dim LastName As TextBox = TryCast(FormView1.FindControl("LastName"), TextBox)
Dim DropDownListEquip As DropDownList = TryCast(FormView1.FindControl("DropDownListEquip"), DropDownList)
Dim DropDownList1 As DropDownList = TryCast(FormView1.FindControl("DropDownList1"), DropDownList)
' Try
cmd = New System.Data.SqlClient.SqlCommand("SELECT cusID, FirstName+ ' ' + LastName AS ContactName FROM Contacts WHERE cusID=@cusID ORDER BY LastName, FirstName", conn)
cmd.Parameters.AddWithValue("@cusID", DropDownList1.SelectedValue)
conn.Open()
reader = cmd.ExecuteReader()
If reader.HasRows Then
DropDownList2.DataSource = reader
DropDownList2.DataTextField = "ContactName"
DropDownList2.DataValueField = "cusID"
DropDownList2.DataBind()
DropDownList2.Items.Insert(0, ("-- Choose a Contact --"))
Else
DropDownList2.Items.Insert(0, ("-- Error: No Contacts Found --"))
End If
reader.Close()
cmd = New System.Data.SqlClient.SqlCommand("SELECT a.Company + ' - ' + b.Description As CompanyEqpDesc, b.eqpID FROM Manufacturers a JOIN Equipment b ON a.mfgID=b.mfgID WHERE b.eqpID IN (SELECT eqpID FROM Cus_Equip WHERE cusID=@cusID)", conn)
cmd.Parameters.AddWithValue("@cusID", DropDownList1.SelectedValue)
reader2 = cmd.ExecuteReader()
If reader.HasRows Then
DropDownListEquip.DataSource = reader
DropDownListEquip.DataTextField = "CompanyEqpDesc"
DropDownListEquip.DataValueField = "eqpID"
DropDownListEquip.DataBind()
DropDownListEquip.Items.Insert(0, ("-- Choose Equipment --"))
Else
DropDownListEquip.Items.Insert(0, ("-- Error: No Equipment Found --"))
End If
reader.Close()
conn.Close()
' Catch
' End Try
FirstName.Text = ""
LastName.Text = ""
End Sub
Protected Sub DropDownList2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DropDownList2.SelectedIndexChanged
Dim Company As TextBox = TryCast(FormView1.FindControl("Company"), TextBox)
Dim Address1 As TextBox = TryCast(FormView1.FindControl("Address1"), TextBox)
Dim Address2 As TextBox = TryCast(FormView1.FindControl("Address2"), TextBox)
Dim Phone As TextBox = TryCast(FormView1.FindControl("Phone"), TextBox)
Dim FirstName As TextBox = TryCast(FormView1.FindControl("FirstName"), TextBox)
Dim LastName As TextBox = TryCast(FormView1.FindControl("LastName"), TextBox)
Dim City As TextBox = TryCast(FormView1.FindControl("City"), TextBox)
Dim State As TextBox = TryCast(FormView1.FindControl("State"), TextBox)
Dim Zip As TextBox = TryCast(FormView1.FindControl("Zip"), TextBox)
Dim DropDownList2 As DropDownList = TryCast(FormView1.FindControl("DropDownList2"), DropDownList)
cmd = New System.Data.SqlClient.SqlCommand("SELECT a.Company, a.Address1, a.Address2, b.FirstName, b.LastName, c.City, c.State, c.Zip FROM Customers a JOIN Contacts b ON a.cusID=b.cusID JOIN Zip c ON a.cusID=c.cusID WHERE a.cusID=@cusID and b.ContactID=@conID", conn)
cmd.Parameters.AddWithValue("@cusID", DropDownList1.SelectedValue)
cmd.Parameters.AddWithValue("@conID", DropDownList2.SelectedValue)
' Try
conn.Open()
reader = cmd.ExecuteReader()
If reader.HasRows Then
While reader.Read()
Company.Text = reader.Item("Company").ToString
Address1.Text = reader.Item("Address1").ToString
Address2.Text = reader.Item("Address2").ToString
Phone.Text = reader.Item("Phone").ToString
FirstName.Text = reader.Item("FirstName").ToString()
LastName.Text = reader.Item("LastName").ToString()
City.Text = reader.Item("City").ToString()
State.Text = reader.Item("State").ToString()
Zip.Text = reader.Item("Zip").ToString()
End While
End If
reader.Close()
conn.Close()
' Catch
'End Try
End Sub
Public Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Dim disID As String
Dim recs As Integer = 0
Dim Problem As TextBox = TryCast(FormView1.FindControl("Problem"), TextBox)
Dim DropDownListPriority As DropDownList = TryCast(FormView1.FindControl("DropDownListPriority"), DropDownList)
Dim DropDownListBill As DropDownList = TryCast(FormView1.FindControl("DropDownListBill"), DropDownList)
Dim Notes As TextBox = TryCast(FormView1.FindControl("Notes"), TextBox)
cmd = New System.Data.SqlClient.SqlCommand("INSERT INTO Dispatch (cusID, Problem, Priority, Contract) VALUES (@cusID, @Problem, @Priority, @Contract); SELECT SCOPE_IDENTITY()", conn)
cmd.Parameters.AddWithValue("@cusID", DropDownList1.SelectedItem.Value)
cmd.Parameters.AddWithValue("@Problem", Trim(Problem.Text))
cmd.Parameters.AddWithValue("@Priority", DropDownListPriority.SelectedItem.Text)
cmd.Parameters.AddWithValue("@Contract", DropDownListBill.SelectedItem.Text)
' Try
conn.Open()
disID = cmd.ExecuteScalar()
cmd = New System.Data.SqlClient.SqlCommand("INSERT INTO DispatchEvents (disID, Notes) VALUES (@disID, @Notes)", conn)
cmd.Parameters.AddWithValue("@disID", disID)
cmd.Parameters.AddWithValue("@Notes", Trim(Notes.Text))
recs = cmd.ExecuteNonQuery()
conn.Close()
If Len(disID) > 0 Then recs += 1
If recs > 1 Then
Response.Redirect("Dispatch.aspx")
Else
Response.Write("Recs Counted: " & recs & " out of 2.")
End If
' Catch ex As System.Data.SqlClient.SqlException
' Response.Write(ex)
' End Try
End Sub
End Class