Array
(
)

Preencher campo automaticamente

André
   - 12 jul 2010

Boa tarde, Tenho as tabelas CLIENTES, CIDADE e ESTADO. Na página de Cidades tenho um dropdown onde escolho o estado. Na página de Clientes tenho um dropdown onde escolho a cidade. Preciso que o campo ESTADO seja preenchido automaticamente com o estado que corresponde à cidade selecionada no dropdown. Alguem sabe como fazer? Obrigado

Pedro Otávio
   - 12 jul 2010

    #Código

public string buscaNomeEstado(int CodigoEstado)
    {
        string NomeEstado = string.Empty;

        string ConStr = @"Data Source=localhost;Initial Catalog=SeuBanco;Integrated Security=True;";        
        MySqlConnection con = new MySqlConnection(ConStr);
        MySqlDataReader dr;

        string sql = "SELECT nome FROM estado WHERE codigo = " + CodigoEstado;

        con.Open();
        MySqlCommand cmd = new MySqlCommand(sql, con);

        try
        {            
            using (dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                if (dr.Read())
                    NomeEstado = dr["nome"].ToString();
                
        }
        catch (Exception er)
        {
            throw new Exception(er.Message);
        }
        finally
        {
            con.Close();
        }
        return NomeEstado;
    }


 protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
    {       
        Estado est = new Estado();
        Cidade cid = new Cidade();

        // Aqui vc busca o código do estado e atribui a variavel codigoEstado
        // Parametro = Código da Cidade
        int codigoEstado = cid.buscaCodigoEstado(DropDownList1.SelectedValue);

        //Aqui vc busca o nome do Estado apartir do Código do Estado buscado na linha acima
        TextBox1.Text = est.buscaNomeEstado(codigoEstado);
    }


O MÉTODO buscaCodigoEstado É PARECIDO COM O buscaNomeEstado, VC SÓ IRÁ MUDAR A SQL

select codigoEstado from cidade where codigoCidade = CodigoParametro;

André
   - 12 jul 2010

Boa tarde Pedro, Chegando em casa irei testar. Eu tentei fazer coisas mais simples, como vincular os campos no EditDataBindings. Muito obrigado pela ajuda!

André
   - 12 jul 2010

Vi que tem algumas linhas que se referem ao mysql.. eu estou usando o sql server, tem alguma alteração drástica por esse motivo?

Pedro Otávio
   - 12 jul 2010

Modificação drástica num tem não, a unica coisa que vc terá que faze é trocar os nome Mysql por Sql
Ex:
MySqlCommand para SqlCommand

André
   - 12 jul 2010

cara...nunca consegui fazer uma classe funcionar...
a chave primaria da minha tabela ESTADO é string... é o campo UF que recebe SP, MG, RJ e etc...
deu um monte de erro cara... fala que o dropdownlist nao se encontra no contexto, textbox tb... verifiquei se o nome é o mesmo do formulario já...
nao entendi o que vc falou sobre o metodo buscaCodigoEstado...  
nos tipos de variaveis tb da erro... string , int e tal...
Segue abaixo:

protected void DropDownList4_SelectedIndexChanged(object sender, EventArgs e)        {            Estado est = new Estado();             Cidade cid = new Cidade(); 
           // Aqui vc busca o código do estado e atribui a variavel codigoEstado            // Parametro = Código da Cidade            int codigoEstado = cid.buscaCodigoEstado(DropDownList4.SelectedValue); 
           //Aqui vc busca o nome do Estado apartir do Código do Estado buscado na linha acima            TextBox1.Text = est.buscaNomeEstado(codigoEstado); 
        }
            }

    public string buscaNomeEstado(int CodigoEstado)     {         string NomeEstado = string.Empty; 
        string Conexao = @"Data Source=.\SQLEXPRESS;Initial Catalog=BD; User ID=sa; Password=senha";                SqlConnection con = new SqlConnection(Conexao);         SqlDataReader dr; 
        string sql = "SELECT UF FROM estado WHERE UF = " + NomeEstado; 
        con.Open();         SqlCommand cmd = new SqlCommand(sql, con); 
        try         {                        using (dr = cmd.ExecuteReader(CommandBehavior.CloseConnection))                 if (dr.Read())                     NomeEstado = dr["UF"].ToString();                         }         catch (Exception er)         {             throw new Exception(er.Message);         }         finally         {             con.Close();         }         return NomeEstado;     } 
 

André
   - 12 jul 2010

tava vendo aqui... os objetos que ficam dentro do Fromview nao ficam disponiveis pra inserir nos metodos...

André
   - 17 jul 2010

Alguem me ajuda com esse código por favor?
Cidade cid = new Cidade....
Esse código dá erro...de onde surgiu o nome "Cidade"?
Obrigado

Netasper
   - 19 jul 2010

Cidade é classe que deve ser construida com os atributos (get e set) ai vc esta criando uma nova instancia de Cidade.

[]s

Dyego Furletti
|
MVP
    28 jul 2010

Eu no seu lugar como você ja esta usando Sql Server Entity Framework ja é nativo, e como Ef fica muito mais facio trabalhar com conexão e os metodas crud(insert, update, delete, select). Hoje eu trabalho ef no Oracle temos um software de terceiros para cria o modelagem EF, tudo fica mais tranquilo EF. Veja alguma video aulas do Rodrigo Sendim sobre EF e veja o que lhe espera.   Mais informações pode me cominicar por e-mail   dyego_scofield@hotmail.com

Dyego Furletti
|
MVP
    28 jul 2010

Como o EF ficaria simples mdEstado -> Objeto da classe Estado mdEntit -> Objeto da Entitade     ********************************************   CONSULTA PARAMETRO STTRING ESTADO   public void BuscaEstado(string estado) {       string estd = estado;       mdEstado = mdEntiti.Estado.FirstOrDefault(est => est.UF == estd)      txtEstado = mdEstado.DESCRICAO; /*Campo da Tabela que contem o valor com a descrição do estado*/ }     *******************************************   essa seria uma consulta utilizando lambda.   Muito fino ENTITY FRAMEWORK....

André
   - 13 ago 2010

Pessoal, muito obrigado. Consegui resolver de outra forma,mas vou estudar essas outras possibilidade citadas. Quando chegar em casa eu posto a solução aqui. André

Alejandro González
   - 21 mar 2011

Desisti de investir nesta questão, pois existem muitas cidades com o mesmo nome em estados diferentes

É mehor o usuario definir o estado   Alejandro

Alejandro González
   - 21 mar 2011

Desisti de investir nesta questão, pois existem muitas cidades com o mesmo nome em estados diferentes

É mehor o usuario definir o estado   Alejandro