Array
(
)

Ajuda com checkbox

Ciro Daniel
   - 04 dez 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"]; }

Netasper
   - 10 dez 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

Fernando Silva
   - 10 dez 2009

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

Paulo Sena
   - 08 jan 2010

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.

Eleuterio Gonzalez
   - 16 fev 2010

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