Ajuda com checkbox

.NET

04/12/2009

Olá pessoal sou iniciante em c#, ..... se alguem puder ajudar fico agradecido....

Tenho no meu form um datagridview prenchido com os dados de uma tabela firebird nessa tabela tem um campo chamado "status" do tipo char onde marco as opções "A" ou "I"  então coloquei no form dois checkbox e um botão pesquisar quando clicar botão quero que filtre o grid com a opção escolhida no checkbox ou "A" ou "I" ou ambas se estiverem marcadas.  Segue abaixo trecho do código   if (checkBox1.Checked ) { FbConnection connc = new FbConnection(strconn); string strSelect = "SELECT * FROM pessoa WHERE status (@status)"; FbDataAdapter dac = new FbDataAdapter(strSelect, connc); DataSet dsc = new DataSet(); dac.SelectCommand.Parameters.AddWithValue ("status", checkBox1.Checked + "%");
dac.Fill(dsc, "pessoa"); \\ Nesta linha da um erro
dataGridView1.DataSource = dsc.Tables["pessoa"]; }
Ciro Daniel

Ciro Daniel

Curtidas 0

Respostas

Netasper

Netasper

04/12/2009

string opcao1 = (checkbox1.cheched ? "A" : ""); string opcao2 = (checkbox2.cheched ? "I" : ""); string strSelect = "SELECT * FROM pessoa "   if (opcao1.length > 0 ||  opcao2.length > 0) {       strSelect += "where ";        if (opcao1.length > 0)         strSelect += " status = '" + opcao1 + "' and ";        if (opcao2.length > 0)         strSelect += " status = '" + opcao2 + "' and ";        strSelect = strSelect.substring(0, strSelect.length - 4);   }   []s
GOSTEI 0
Fernando Silva

Fernando Silva

04/12/2009

1º Qual é o erro. 2º Ta falntando um "=" depois do status   abs    
GOSTEI 0
Paulo Sena

Paulo Sena

04/12/2009

Tá vamos por partes:

1. Vc quer filtrar o GridView depois de preenchido ou Filtrar a consulta antes de preencher o Grid?

2. Se é pra começar em c# ou vb.net vamos começar certo, utilize paramters para efetuar a consulta como no exemplo que segue:

 private void CarregarUsuario(int usuarioID)
        {
            SqlConnection conn = new SqlConnection("sua string de conexao")

            SqlCommand cmd = null;
            SqlParameter param = null;
            SqlDataAdapter app = null;
            DataSet dtsResultado = null;
            StringBuilder sql = new StringBuilder();

            //Cria a consulta, utilizar o nome das colunas sempre evitar o *
            sql.Append("SELECT ID, NOME, SOBRENOME FROM USUARIO ");
            sql.Append("WHERE ");
            sql.Append("(ID = @ID OR @ID IS NULL) ");

            cmd = new SqlCommand(sql, conn);

            //Adiciona o parâmetro ID
            param = new SqlParameter("@ID", SqlDbType.Int);
           
            //Se existir o ID preenche o parametro se não passa o valor DBNUll
            if (usuarioID > 0)
                param.Value = usuarioID;
            else
                param.Value = DBNull.Value ;
           
            cmd.Parameters.Add(param);

            app = new SqlDataAdapter(cmd);

            //Preenche o DataSet
            app.Fill(dtsResultado, "USUARIOS");
        }


3. Agora se vc já tem algum conhecimento em desenvolvimento de software em outras linguages eu recomendo que já passe para uma faze um pouco mais avançada, utiliza o EnterpriseLibrary, especifamente ApplicationBlocks, ele faz toda a parte de controle de acesso a dados, vc só precisa implementar suas consultas.
GOSTEI 0
Eleuterio Gonzalez

Eleuterio Gonzalez

04/12/2009

VC quer fazer uma consulta e popular ou popular e depois consultar.
acredito que se vc fizer um select e popular resolve seu problema.

GOSTEI 0
POSTAR