Ajuda com checkbox
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"]; }
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
Curtidas 0
Respostas
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
04/12/2009
1º Qual é o erro.
2º Ta falntando um "=" depois do status
abs
GOSTEI 0
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.
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
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.
acredito que se vc fizer um select e popular resolve seu problema.
GOSTEI 0