protected void ddlNames_SelectedIndexChanged(object sender, EventArgs e) { mQueriedCollection = (requestedCompanyInformation)Session["mQueriedCollection"]; if (uNameDropDown.SelectedIndex >= 1) { mOrders = Query.Get_Orders(mQueriedCollection.getId(uNameDropDown.SelectedIndex - 1), out mErrorMessage); uError.Text = mQueriedCollection.getName(uNameDropDown.SelectedIndex - 1) + " has " + mOrders.ToString() + " Orders. "; } else uError.Text = ""; }
public static int Get_Orders(string aFilterName, out string aErrorMessage) //should have been void and updated the requestedCompanyInformation instance //I intended to set up rules that default.aspx.cs can only query DB //through query but retrieve results from requestedCompanyInformation //Query would store all relevant info in requestedCompanyInformation and return that object // then the requestedCompanyInformation would have all relevant info name/id/mOrders //in one data structure for easy data mgmt { requestedCompanyInformation lDropDownList = new requestedCompanyInformation(); SqlDataReader lOrdersDataReader = null; SqlConnection lSqlConnection = null; int lCounter = 0; try { lSqlConnection = Setup_Connection(); lOrdersDataReader = Get_OrderReader(aFilterName, lSqlConnection); if (lOrdersDataReader.Read()) { lCounter = (int)lOrdersDataReader["OrderCount"]; } else aErrorMessage = "ERROR: lookup Failed"; //some redundancy here if(lCounter == 0) { aErrorMessage = "ERROR: lookup Failed"; } else aErrorMessage = "No Error"; } catch (Exception ex) { aErrorMessage = "ERROR: " + ex.Message; } finally { if (lOrdersDataReader != null) { lOrdersDataReader.Close(); } if (lSqlConnection != null) { lSqlConnection.Close(); } } return lCounter; }
protected void TextBox1_TextChanged(object sender, EventArgs e) { uNameDropDown.Items.Clear(); uNameDropDown.Items.Add("Select Customer"); mNameInput = uCompanyNameFilter.Text.Trim(); mNameInput = mNameInput.Replace("\'", "\'\'"); mQueriedCollection = Query.Get_requestedCompanyInformation(mNameInput, out mErrorMessage); mCounter = mQueriedCollection.howMany(); uError.Text = mErrorMessage; uNameDropDown.Enabled = true; if (Session["mQueriedCollection"] != null) { Session["mQueriedCollection"] = null; } if (mCounter > -1) //could this ever be -1? { if (mCounter == 0) { uNameDropDown.Enabled = false; uError.Text = "There are no customer names matching " + uCompanyNameFilter.Text.ToString() + "."; //left htis as text box info and not the string var because "b '" //was printing as just "b". It still delimits some white space but it //includes special chars after whitespace now. } else if (mCounter == 1) { mOrders = Query.Get_Orders(mQueriedCollection.getId(0), out mErrorMessage); uNameDropDown.Enabled = false; uError.Text = mQueriedCollection.getName(0) + " has " + mOrders.ToString() + " Orders. "; } else { for (int i = 0; i < mCounter; i++) { uNameDropDown.Items.Add(mQueriedCollection.getName(i)); } } } if (Session["mQueriedCollection"] == null) { Session["mQueriedCollection"] = mQueriedCollection; } }
public static requestedCompanyInformation Get_requestedCompanyInformation(string aFilterName, out string aErrorMessage) //should have been named get customerName/ID { requestedCompanyInformation lDropDownList = new requestedCompanyInformation(); SqlDataReader lIdentificationDataReader = null; SqlConnection lSqlConnection = null; int lCounter = 0; aErrorMessage = ""; try { lSqlConnection = Setup_Connection(); lIdentificationDataReader = Get_Reader(aFilterName, lSqlConnection); while(lIdentificationDataReader.Read()) { lCounter++; lDropDownList.addToRequestedCompanyInformation((string)lIdentificationDataReader["CompanyName"], (string)lIdentificationDataReader["CustomerID"]); //every loop save into a data collection then populate lDropDownList in main class } if (lCounter == 0) { aErrorMessage = "Lookup failed"; } } catch (Exception ex) { aErrorMessage = "ERROR: " + ex.Message; } finally { if (lIdentificationDataReader != null) { lIdentificationDataReader.Close(); } if (lSqlConnection != null) { lSqlConnection.Close(); } } return lDropDownList; }