User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the ASP.NET section within the Web Development category of DaniWeb, a massive community of 401,520 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,400 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our ASP.NET advertiser: Lunarpages ASP Web Hosting
Views: 6720 | Replies: 27
Reply
Join Date: Feb 2008
Location: Va Beach
Posts: 179
Reputation: foundsheep is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
foundsheep's Avatar
foundsheep foundsheep is offline Offline
Junior Poster

Object reference not set to an instance of an object

  #1  
Feb 22nd, 2008
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
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Jan 2008
Location: istanbul
Posts: 265
Reputation: serkansendur is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 23
serkansendur's Avatar
serkansendur serkansendur is offline Offline
Posting Whiz in Training

Re: Object reference not set to an instance of an object

  #2  
Feb 22nd, 2008
Hi foundsheep, i got your message. Make sure that your dropdown's enableViewState attribute is set to true and make sure that you fill the drop down between the "not IsPostBack" block.

Modify your page_load handler like this :

protected void Page_Load(object sender, EventArgs e)
{
if(!IstPostBack)
{
fill the dropdowns();
}
}
Serkan Şendur
MCAD.NET
Reply With Quote  
Join Date: Sep 2007
Posts: 1,057
Reputation: SheSaidImaPregy is an unknown quantity at this point 
Rep Power: 3
Solved Threads: 61
SheSaidImaPregy SheSaidImaPregy is offline Offline
Veteran Poster

Re: Object reference not set to an instance of an object

  #3  
Feb 22nd, 2008
yeah, I did his coding but I am inline, so there's some flaws here.

It's within the ispostback.
Reply With Quote  
Join Date: Feb 2008
Location: Va Beach
Posts: 179
Reputation: foundsheep is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
foundsheep's Avatar
foundsheep foundsheep is offline Offline
Junior Poster

Re: Object reference not set to an instance of an object

  #4  
Feb 22nd, 2008
Is that C#? What would it look like in VB?
Reply With Quote  
Join Date: Sep 2007
Posts: 1,057
Reputation: SheSaidImaPregy is an unknown quantity at this point 
Rep Power: 3
Solved Threads: 61
SheSaidImaPregy SheSaidImaPregy is offline Offline
Veteran Poster

Re: Object reference not set to an instance of an object

  #5  
Feb 22nd, 2008
It's already on there. VB.NET version of his code:
C#:
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
fill the dropdowns();
}
}

VB.NET:
protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
if Not Page.IsPostBack then
  'fill the dropdowns();
end if
Last edited by SheSaidImaPregy : Feb 22nd, 2008 at 12:25 pm.
Reply With Quote  
Join Date: Feb 2008
Location: Va Beach
Posts: 179
Reputation: foundsheep is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
foundsheep's Avatar
foundsheep foundsheep is offline Offline
Junior Poster

Re: Object reference not set to an instance of an object

  #6  
Feb 22nd, 2008
So, that wasn't the solution.
Reply With Quote  
Join Date: Jan 2008
Location: istanbul
Posts: 265
Reputation: serkansendur is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 23
serkansendur's Avatar
serkansendur serkansendur is offline Offline
Posting Whiz in Training

Re: Object reference not set to an instance of an object

  #7  
Feb 22nd, 2008
You said it is within ispostback, it must be within "not ispostback"
Serkan Şendur
MCAD.NET
Reply With Quote  
Join Date: Sep 2007
Posts: 1,057
Reputation: SheSaidImaPregy is an unknown quantity at this point 
Rep Power: 3
Solved Threads: 61
SheSaidImaPregy SheSaidImaPregy is offline Offline
Veteran Poster

Re: Object reference not set to an instance of an object

  #8  
Feb 22nd, 2008
I meant it's within a postback statement. So yes it's within this:

If Not Page.IsPostBack Then
...
End If
Reply With Quote  
Join Date: Feb 2008
Location: Va Beach
Posts: 179
Reputation: foundsheep is an unknown quantity at this point 
Rep Power: 1
Solved Threads: 0
foundsheep's Avatar
foundsheep foundsheep is offline Offline
Junior Poster

Re: Object reference not set to an instance of an object

  #9  
Feb 22nd, 2008
I had some tell me this. Is it a valid question?

In this line here
Code:

cmd.Parameters.AddWithValue("@cusID", DropDownList1.SelectedValue)

Check and make sure that DropDownList1.SelectedValue is not null
Reply With Quote  
Join Date: Sep 2007
Posts: 1,057
Reputation: SheSaidImaPregy is an unknown quantity at this point 
Rep Power: 3
Solved Threads: 61
SheSaidImaPregy SheSaidImaPregy is offline Offline
Veteran Poster

Re: Object reference not set to an instance of an object

  #10  
Feb 22nd, 2008
No, it's not a valid question. The reason is because this is on an event that isn't triggered until it is selected. Therefore, if you are getting this error at runtime and cannot even load the page, then that is not it. That event hasn't been triggered. So there is an error somewhere.

Post your aspx code please so I can do one more DEBUG for you.
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb ASP.NET Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the ASP.NET Forum

All times are GMT -4. The time now is 2:55 am.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC