DATAREADER + DATATABLE (ADO 2)
 

Order


 
Order Details



Show code / exibir código
using System.Data.SqlClient;
using System.Web.Configuration;

string conStr = WebConfigurationManager.ConnectionStrings["ConnStringKey"].ConnectionString;
protected void Page_Load(object sender, EventArgs e)
{
      if (!Page.IsPostBack)
    {
        gvData.Visible = false;
        lstOrders.Visible = false;
        dropOrders.Visible = false;
    }
}

protected void Button1_Click(object sender, EventArgs e)
{
    gvData.Visible = false;
    lstOrders.Visible = true;
    dropOrders.Visible = true;
    DataTable myTable;
    using (SqlConnection conn = new SqlConnection(conStr))
    {
        try
        {
            string sql = "Select OrderID, CustomerID + ' - ' + CONVERT(varchar(12), OrderDate, 101) AS Data FROM Orders Order BY CustomerID";
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                myTable = new DataTable();
                myTable.Load(reader);
                lstOrders.DataSource = myTable;
                lstOrders.DataTextField = "Data";
                lstOrders.DataValueField = "OrderID";
                dropOrders.DataSource = myTable;
                dropOrders.DataTextField = "Data";
                dropOrders.DataValueField = "OrderID";
                lstOrders.DataBind();
                dropOrders.DataBind();
                reader.Close();
                conn.Close();
            }
        }
        catch (Exception ex)
        { Response.Write(ex.Message); }
    }
}

protected void Button2_Click(object sender, EventArgs e)
{
    gvData.Visible = false;
    lstOrders.Visible = true;
    dropOrders.Visible = true;
    using (SqlConnection conn = new SqlConnection(conStr))
    {
        try
        {
            string sql = "Select OrderID, CONVERT(varchar(12), OrderDate, 101) + ' - ' + CustomerID AS Data FROM Orders Order BY CustomerID";
            using (SqlCommand cmd = new SqlCommand(sql, conn))
            {
                conn.Open();
                SqlDataReader reader = cmd.ExecuteReader();
                int index = 0;
                lstOrders.Items.Clear();
                dropOrders.Items.Clear();
                while (reader.Read())
                {
                    ListItem li = new ListItem(reader["Data"].ToString(), reader["OrderID"].ToString());
                    lstOrders.Items.Insert(index, li);
                    dropOrders.Items.Insert(index, li);
                    index++;
                    //lstOrders.Items.Add(reader["Data"].ToString());
                    //dropOrders.Items.Add(reader["Data"].ToString());
                }
                lstOrders.DataBind();
                dropOrders.DataBind();
                reader.Close();
                conn.Close();
            }
        }
        catch (Exception ex)
        { Response.Write(ex.Message); }
    }
}

protected void FillOrderDetails(string order)
{
    gvData.Visible = true;
    using (SqlConnection conn = new SqlConnection(conStr))
    {
    try
    {
        string sql = "Select * from [Order Details] Where OrderID=@orderID";
        using (SqlCommand cmd = new SqlCommand(sql, conn))
        {
            conn.Open();
              SqlParameter pOrder = new SqlParameter("@orderID", SqlDbType.Int);
            pOrder.Value = order;
            cmd.Parameters.Add(pOrder);
            SqlDataReader reader = cmd.ExecuteReader();
            gvData.DataSource = reader;
            gvData.DataBind();
            reader.Close();
            conn.Close();
        }
    }
    catch (Exception ex)
    { Response.Write(ex.Message); }
    }
}

protected void lstOrders_SelectedIndexChanged(object sender, EventArgs e)
{
    FillOrderDetails(lstOrders.SelectedItem.Value);
}
protected void dropOrders_SelectedIndexChanged(object sender, EventArgs e)
{
    FillOrderDetails(dropOrders.SelectedItem.Value);
}