Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Clauido José

Criando uma função dinamica

Recommended Posts

Pessoal estou com uma duvida como eu crio uma função dinamica no c# vou dar um exemplo por exemplo tenho um grid que preencho com uma função a tabela de carros quando abrir a pagina ele tem que trazer a tela toda ai quando for alterando com combobox a marca e modelo ele vai preenchendo o grid conforme a consulta trazer se for zero não tera registro nenhum no grid assim por diante

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal é seguinte consegui em partes criar a função como eu queria mas não altera o estado do grid porque veja o codigo.

 protected void Page_Load(object sender, EventArgs e)
    {

        if (!IsPostBack)
        {
            
            string MySqlConnString = "Data Source=127.0.0.1;Database=carsystem;User Id=root;Password=root;port=3306";
            using (MySqlConnection cn = new MySqlConnection(MySqlConnString))
            {
                MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM tmarca ORDER BY marca", cn);
                DataTable dt = new DataTable();
                adp.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    ddlMarcas.DataSource = dt;
                    ddlMarcas.DataTextField = "marca";
                    ddlMarcas.DataValueField = "idmarca";
                    ddlMarcas.DataBind();
                    ddlMarcas.Items.Insert(0, new ListItem("Selecione", "Primeiro"));
                }
            }
            preencheGrid("SELECT tcarro.*, tmarca.marca, tmodelos.modelo FROM (tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo");
        }

    }

    public void preencheGrid(string sql)
    {
        string MySqlConnString = "Data Source=127.0.0.1;Database=carsystem;User Id=root;Password=root;port=3306";
        using (MySqlConnection cn = new MySqlConnection(MySqlConnString))
        {
            MySqlDataAdapter adp = new MySqlDataAdapter(sql, cn);
            DataTable dt = new DataTable();
            adp.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                ClienteGridView.DataSource = dt;
                ClienteGridView.DataBind();
            }
        }
    }

    protected void ddlMarcas_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (!String.IsNullOrEmpty(ddlMarcas.SelectedValue))
        {
            //Limpa os Itens do DropDownList Cidade
            ddlModelo.Items.Clear();
            //Carrega DropDownList com Cidades
            string MySqlConnString = "Data Source=127.0.0.1;Database=carsystem;User Id=root;Password=root;port=3306";
            using (MySqlConnection cn = new MySqlConnection(MySqlConnString))
            {
                MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM tmodelos WHERE idmarca=" + ddlMarcas.SelectedValue, cn);
                DataTable dt = new DataTable();
                adp.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    ddlModelo.DataSource = dt;
                    ddlModelo.DataTextField = "modelo";
                    ddlModelo.DataValueField = "idmodelo";
                    ddlModelo.DataBind();
                    preencheGrid("SELECT tcarro.*, tmarca.marca, tmodelos.modelo FROM (tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo WHERE tcarro.idmarca=" + ddlMarcas.SelectedValue);
        
                }
            }

        }
    }
    protected void ddlModelo_SelectedIndexChanged(object sender, EventArgs e)
    {
        string MySqlConnString = "Data Source=127.0.0.1;Database=carsystem;User Id=root;Password=root;port=3306";
        using (MySqlConnection cn = new MySqlConnection(MySqlConnString))
        {
            MySqlDataAdapter adp = new MySqlDataAdapter("SELECT * FROM tcarro WHERE idmarca=" + ddlMarcas.SelectedValue + " and idmodelo=" + ddlModelo.SelectedValue, cn);
            DataTable dt = new DataTable();
            adp.Fill(dt);
            if (dt.Rows.Count > 0)
            {
                preencheGrid("SELECT tcarro.*, tmarca.marca, tmodelos.modelo FROM (tcarro INNER JOIN tmarca ON tcarro.idmarca = tmarca.idmarca) INNER JOIN tmodelos ON tcarro.idmodelo = tmodelos.idmodelo WHERE idmarca=" + ddlMarcas.SelectedValue + " and idmodelo=" + ddlModelo.SelectedValue);
            }
        }
    }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.