none
Pesquisar dados através de um textbox RRS feed

  • Pergunta

  • Pesquisei na net e não encontrei nada que pudesse me ajudar...talvez por eu ainda estar iniciando em c# .net...

    tenho uma textbox e um button, neste caso tenho que pesquisar placas de carros que estão no BD. Então, digito a placa e um gridview (com um panel, visivel após pressionar o button) traz os dados. O problema é que não estou sabendo como fazer essa pesquisa...alguém poderia me ajudar?

    o método que estou usando para o bd é este:

    public Carros Select(string Placa)
    {
        Carros obj = null;

        System.Data.IDbConnection objConexao;
        System.Data.IDbCommand objCommand;
        System.Data.IDataReader objDataReader;
        objConexao = Mapped.Connection();
        objCommand = Mapped.Command("SELECT * FROM TBL_CARRO WHERE CAR_PLACA=?Placa", objConexao);
        objCommand.Parameters.Add(Mapped.Parameter("?Placa", Placa));
        //esse id ta vindo da chamada do metodo select int id
        objDataReader = objCommand.ExecuteReader();
        //ele traz todas as informaçoes do registro dentro do while
        while (objDataReader.Read())
        {
            obj = new Carros();
            obj.Condutor = Convert.ToString(objDataReader["CAR_PLACA"]);
            obj.CNH = Convert.ToString(objDataReader["CAR_MODELO"]);
            obj.Condutor = Convert.ToString(objDataReader["CAR_MARCA"]);
            obj.Condutor = Convert.ToString(objDataReader["CAR_NOME"]);
            //coloca todos os atributos, verifica o tipo de dado do atributo e faz a conversão adequada
        }
        objDataReader.Close();
        objConexao.Close();
        objCommand.Dispose();
        objConexao.Dispose();
        objDataReader.Dispose();
        return obj;
    }

    agradeço se alguém puder me ajudar..

    quinta-feira, 29 de maio de 2014 19:05

Respostas

  • Obrigada pelo conselho Daniel...agora consegui resolver,  na verdade o que eu estava errando era no Page Load...foi só alterar e chamar o comando do BD que deu certo...obrigada pela atenção.
    • Marcado como Resposta Tha92 sexta-feira, 30 de maio de 2014 19:41
    sexta-feira, 30 de maio de 2014 19:41

Todas as Respostas

  • Mapped

    que raios seria isto?

    Aqui ta um código simples, de uma pesquisa

    private void pesquisar(string parametro)
    {
    	SqlConnection conexao  = new SqlConnection();
    	conexao.ConnectionString = "";
    	conexao.Open();
    	
    	DataTable dtb = new DataTable();
    	
    	SqlDataAdpter adpter = new SqlDataAdpter("select * from TBL_CARRO WHERE CAR_PLACA='"+ parametro +"'",conexao);
    	adpter.Fill(dtb);
    	
    	DataGridView.DataSoucer = dtb;
    	
    }

    e então vc chamaria assim:

    pesquisar(txtPlaca.Text);

    quinta-feira, 29 de maio de 2014 19:18
  • eu usaria este comando no mapped?

    quinta-feira, 29 de maio de 2014 19:36
  • Particularmente, não sei o que é Mapped, isto que te dei é um codigo direto para fazer o que vc pediu, só por a string de conexão e mandar bala.

    Caso tenha que ser feito em Mapped, por gentileza, aguarde outro colaborador te ajudar, pois seei humilde em dizer que não sei.

    quinta-feira, 29 de maio de 2014 19:45
  • Tá certo coloquei o comando direto, agora está dando um errinho de password, mas aí preciso alterar conforme está no meu mapped. No meu caso, o meu mapped é onde eu abro a conexao, executo o comando no bd, retorno um adapter, e crio parametro...para não precisar criar sempre a conexão quando for carregar um grid por exemplo. Mas obrigada pela ajuda. Já me orientou bastante. Obrigada
    quinta-feira, 29 de maio de 2014 19:52
  • Particularmente, não sei o que é Mapped, isto que te dei é um codigo direto para fazer o que vc pediu, só por a string de conexão e mandar bala.

    Caso tenha que ser feito em Mapped, por gentileza, aguarde outro colaborador te ajudar, pois seei humilde em dizer que não sei.

     Olá Dietrich, pelo que foi descrito Mapped seria a instância do SqlConnection e SqlCommand feio por ela por ex :

    class Mapped
    {
      public SqlConnection Conexao()
      {
         return new SqlConnection("stringconexao");
      }
    
      public SqlCommand Command()
      {
         return new SqlCommand();
      
       }
    
    }
      Algo parecido com isso !

     

    quinta-feira, 29 de maio de 2014 19:56
  • é bem parecido msmo Daniel...meu mapped tá assim:
    public class Mapped
        {
            //Abrir conexao
            public static IDbConnection Connection()
            {
                MySqlConnection conn = new MySqlConnection(ConfigurationManager.AppSettings["strConexao"]);
                conn.Open();
                return conn;
            }

            //Executa comando no BD
            public static IDbCommand Command(string query, IDbConnection conexao)
            {
                IDbCommand comando = conexao.CreateCommand();
                comando.CommandText = query;
                return comando;
            }

            //Retorna um Adapter (SELECT)
            public static IDataAdapter Adapter(IDbCommand comando)
            {
                IDbDataAdapter adap = new MySqlDataAdapter();
                adap.SelectCommand = comando;
                return adap;
            }

            //Cria parametro da SQL
            public static IDbDataParameter Parameter(string nome, object valor)
            {
                return new MySqlParameter(nome, valor);
            
            }
    quinta-feira, 29 de maio de 2014 20:00
  • Daniel, honestamente, sem um debug junto eu me perco, o codigo está muito extenso, nunca que iria imaginar que o Mapped seria o DAO generico.

    Por favor, ve se vc pode ajudar, pois já me perdi no codigo.

    quinta-feira, 29 de maio de 2014 20:15
  • Daniel, honestamente, sem um debug junto eu me perco, o codigo está muito extenso, nunca que iria imaginar que o Mapped seria o DAO generico.

    Por favor, ve se vc pode ajudar, pois já me perdi no codigo.

     Tranquilo Dietrich,

      Tha92, o erro é nos seus parametros troque todos os "?" por "@" com MySql se usa arroba em parametros !

     Troque e poste o resultado !

    sexta-feira, 30 de maio de 2014 00:32
  • Obrigada pelo conselho Daniel...agora consegui resolver,  na verdade o que eu estava errando era no Page Load...foi só alterar e chamar o comando do BD que deu certo...obrigada pela atenção.
    • Marcado como Resposta Tha92 sexta-feira, 30 de maio de 2014 19:41
    sexta-feira, 30 de maio de 2014 19:41