jtrapat1
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 :
|