Navigate
Home
ArticleWiki
Forum
Journal
Search
Newsletter
Links
Tech News
expertsrt.com
Welcome Guest.
Username:

Password:

Remember me

Question regarding placement and structure of DataSet Calls.
Welcome, Guest. Please login or register.
December 02, 2008, 10:44:29 AM
11304 Posts in 1248 Topics by 498 Members
Latest Member: katCheeme
Experts Round Table Network  |  Serverside Technology  |  ASP  |  Question regarding placement and structure of DataSet Calls. « previous next »
Pages: [1]
Author Topic: Question regarding placement and structure of DataSet Calls.  (Read 545 times)
jtrapat1

Offline Offline

Posts: 2


« on: October 30, 2007, 11:50:15 AM »

I dont really understand Datasets in ASP.NET so I could use a little help in the following code:
I tried to make this code easier to understand but I think I screwed it up.
I have a form page with data from three different tables (or joins):
The main form text fields are populated from one query while there are two dropdownlists which are filled by storedprocedures.
However, I used a new database connection to fill each dropdown and declared a new Dataset for each.
Here is my problem code followed by the working code;
Please Help.
----------------------------------------------------
The two calls I added were GetAgencies() and GetLocations():
--------------------
Sub GetLocations()

            Dim cmd5 As New SqlClient.SqlCommand()
            Dim da As New SqlDataAdapter
            Dim ds As New DataSet

            cmd5.Connection = objConn
            cmd5.CommandText = "GetLocations"
            cmd5.CommandType = CommandType.StoredProcedure
            da = New SqlDataAdapter(cmd5)
            da.Fill(ds, "Locations")

            cbLoc1.Items.Clear()
            cbLoc1.DataSource = ds.Tables("Locations")
            cbLoc1.DataTextField = "Location Name"
            cbLoc1.DataValueField = "location_id"
            cbLoc1.DataBind()
            'cbLoc1.Items.Insert(0, "- Locations -")
        End Sub

        Sub GetAgencies()
            Dim cmd6 As New SqlClient.SqlCommand()
            Dim da As New SqlDataAdapter
            Dim ds As New DataSet

            cmd6.Connection = objConn
            cmd6.CommandText = "GetAgency"
            cmd6.CommandType = CommandType.StoredProcedure
            da = New SqlDataAdapter(cmd6)
            da.Fill(ds, "Agency")

            ddAgency.Items.Clear()
            ddAgency.DataSource = ds.Tables("Agency")
            ddAgency.DataTextField = "Agency"
            ddAgency.DataValueField = "osccode"
            ddAgency.DataBind()
            ddAgency.Items.Insert(0, "- NO AGENCY SELECTED -")
            'ddAgency.Items.Insert(0, "- NON-STATE AGENCY -")

        End Sub
--------------------
Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            If Trim(Request.QueryString("CID")) = "-1" Then
                sPage = "-1"
            Else
                sPage = Request.QueryString("CID")
            End If
            cId = sPage

            OpenConnection()

            If Not IsPostBack Then
                'get data from sps
                GetAgencies()
                GetLocations()

                If Request.QueryString("CID") Is Nothing Then
                    'Me.ddlStatus.SelectedValue = "A"
                    'Status.Text = "New Client"
                    ClientID.Text = "New"
                ElseIf Request.QueryString("CID") = "New" Then
                    'Status.Text = "New Client"
                    ClientID.Text = "New"


                Else
                    Try
                        'Status.Text = "Client Retrieved"
                        cId = CInt(Request.QueryString("CID"))
                        DS = New DataSet()
                        objConn = New SqlConnection(strConn)
                        cmd = New SqlCommand("GetClient", objConn)
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.Parameters.Add("@ClientID", SqlDbType.Int).Value = cId
                        myDataAdapter = New SqlDataAdapter(cmd)
                        myDataAdapter.Fill(DS, "Client")
                        If DS.Tables("Client").Rows.Count = 0 Then
                            'Status.Text = "Client Not Found"
                        Else
                            'if new client
                            'make status drop down box and status label invisible
                            'also make date created and date modified invisible
                            'Me.ddlStatus.Style("visibility") = "hidden"
                            'Me.lblStatus.Style("visibility") = "hidden"

                            drContact = DS.Tables("Client").Rows(0)
                            'ClientID.Text = Trim(drContact("ClientId"))
                            ContactName.Text = Trim(drContact("ContactName"))
                            ContactFirstName.Text = Trim(drContact("ContactFirstName"))
                            ContactLastName.Text = Trim(drContact("ContactLastName"))
                            CompanyName.Text = Trim(drContact("CompanyName"))
                            Address1.Text = Trim(drContact("Address1"))
                            Address2.Text = Trim(drContact("Address2"))
                            City.Text = Trim(drContact("City"))
                            State.Text = Trim(drContact("State"))
                            Zip.Text = Trim(drContact("Zip"))
                            Email.Text = Trim(drContact("EMail"))
                            Description.Text = Trim(drContact("Description"))
                            Me.ddlStatus.SelectedValue = Trim(drContact("Status"))
                            Phone.Text = Trim(drContact("Phone"))
                            Fax.Text = Trim(drContact("Fax"))

                            'DateCreated.Text = Trim(Format(drContact("DateCreated"), "Long Date") & "      " & Format(drContact("DateCreated"), "Short Time"))
                            'DateModified.Text = Trim(Format(drContact("DateModified"), "Long Date") & "     " & Format(drContact("DateModified"), "Short Time"))
                            'get business info and fill here
                            Affiliation.Text = Trim(drContact("Affiliation"))
                            'ClientName.Text = Trim(drContact("ClientName"))
                            BillingAddress1.Text = Trim(drContact("BillingAddress1"))
                            BillingAddress2.Text = Trim(drContact("BillingAddress2"))
                            BillingFirstName.Text = Trim(drContact("BillingFirstName"))
                            BillingLastName.Text = Trim(drContact("BillingLastName"))
                            BusinessPh.Text = Trim(drContact("BusinessPhone"))
                            BusinessFax.Text = Trim(drContact("BusinessFax"))

                            GetCheckBoxes()

                        End If
                        'To Do
                    Catch ex As InvalidCastException

                    Catch ex As SqlException
                        If cmd.Connection.State <> ConnectionState.Closed Then
                            cmd.Connection.Close()

                        End If

                    Catch ex As Exception
                        If cmd.Connection.State <> ConnectionState.Closed Then
                            cmd.Connection.Close()
                        End If
                    End Try
                End If
            End If
        End Sub
--------------------------------------------------------
And the working Page_Load() looked like this:
--------------------------------
Public Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            If Trim(Request.QueryString("CID")) = "-1" Then
                sPage = "-1"

            Else
                sPage = Request.QueryString("CID")
            End If
            cId = sPage

            OpenConnection()

            If Not IsPostBack Then
                If Request.QueryString("CID") Is Nothing Then
                    Status.Text = "New Client"
                    ClientID.Text = "New"
                ElseIf Request.QueryString("CID") = "New" Then
                    Status.Text = "New Client"
                    ClientID.Text = "New"
                Else
                    Try
                        Status.Text = "Client Retrieved"
                        cId = CInt(Request.QueryString("CID"))
                        DS = New DataSet()
                        objConn = New SqlConnection(strConn)
                        cmd = New SqlCommand("GetClient", objConn)
                        cmd.CommandType = CommandType.StoredProcedure
                        cmd.Parameters.Add("@ClientID", SqlDbType.Int).Value = cId
                        myDataAdapter = New SqlDataAdapter(cmd)
                        myDataAdapter.Fill(DS, "Client")
                        If DS.Tables("Client").Rows.Count = 0 Then
                            Status.Text = "Client Not Found"
                        Else
                            drContact = DS.Tables("Client").Rows(0)
                            ClientID.Text = Trim(drContact("ClientId"))
                            ContactName.Text = Trim(drContact("ContactName"))
                            ContactFirstName.Text = Trim(drContact("ContactFirstName"))
                            ContactLastName.Text = Trim(drContact("ContactLastName"))
                            CompanyName.Text = Trim(drContact("CompanyName"))
                            Address1.Text = Trim(drContact("Address1"))
                            Address2.Text = Trim(drContact("Address2"))
                            City.Text = Trim(drContact("City"))
                            State.Text = Trim(drContact("State"))
                            Zip.Text = Trim(drContact("Zip"))
                            Email.Text = Trim(drContact("EMail"))
                            Description.Text = Trim(drContact("Description"))
                            Status.Text = Trim(drContact("Status"))
                            Phone.Text = Trim(drContact("Phone"))
                            Fax.Text = Trim(drContact("Fax"))
                            DateCreated.Text = Trim(Format(drContact("DateCreated"), "Long Date") & "      " & Format(drContact("DateCreated"), "Short Time"))
                            DateModified.Text = Trim(Format(drContact("DateModified"), "Long Date") & "     " & Format(drContact("DateModified"), "Short Time"))

                            GetCheckBoxes()
                        End If
                        'To Do
                    Catch ex As InvalidCastException
                        Status.Text = "Invalid Client Id Value"

                    Catch ex As SqlException
                        Status.Text = "Database Error: " & ex.Message
                        If cmd.Connection.State <> ConnectionState.Closed Then
                            cmd.Connection.Close()

                        End If

                    Catch ex As Exception
                        Status.Text = "General error: " & ex.Message
                        If cmd.Connection.State <> ConnectionState.Closed Then
                            cmd.Connection.Close()
                        End If
                    End Try
                End If
            End If
        End Sub
:
Logged
Pages: [1]
« previous next »
    Jump to: