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;

    }