Radio Button e Checkbox no Banco de Dados
21/05/2012
0
Sigrids Lima
Posts
21/05/2012
Joel Rodrigues
Assim facilitará para que alguém te ajude.
25/05/2012
Sigrids Lima
http://www.igrejadarestauracao.net/tela.jpg
Nao estou conseguindo gravar os valores dos radio button e checkBox dentro de uma groupbox.
Ja os valores das textbox consigo gravar normalmente.
Segue o codigo para gravar:
public void InserirContato()
{
try
{
dal.ComandoSQl(INSERT INTO TBNOME(nome,endereco,sexo,estuda,obs) VALUES( + Nome + , + Endereco + , + Sexo + , + Estuda + , + Obs + ));
}
catch (Exception ex)
{
throw ex;
}
}
E o codigo do evento do botao gravar
private void btnSalvar_Click(object sender, EventArgs e)
{
if (txtNome.Text != )
{
RegraNegocio cln = new RegraNegocio();
cln.Nome = this.txtNome.Text;
cln.Endereco = this.txtEndereço.Text;
cln.Sexo = this.rdMasculino.Text;
cln.Sexo = this.rdFeminino.Text;
cln.Estuda = this.ckbEstuda.Text;
cln.Obs = this.rtbObs.Text;
cln.InserirContato();
negocio.PreencherDataGrid(dgvNome);
btnSalvar.Enabled = false;
btnAtualizar.Enabled = true;
btnExcluir.Enabled = true;
{
txtNome.Focus();
btnSalvar.Enabled = true;
}
LimparCampo();
MessageBox.Show(Nome cadastrado com sucesso, Sucesso,
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
else
{
txtNome.Focus();
btnNovo.Enabled = true;
btnSalvar.Enabled = true;
btnAtualizar.Enabled = true;
btnExcluir.Enabled = true;
btnPrimeiro.Enabled = true;
btnProximo.Enabled = true;
btnUltimo.Enabled = true;
btnAnterior.Enabled = true;
MessageBox.Show(Adicione um nome de Usuário, Atenção, MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
So conseguigo salvar os dados no banco quando retiro essas linhas:
cln.Sexo = this.rdMasculino.Text;
cln.Sexo = this.rdFeminino.Text;
cln.Estuda = this.ckbEstuda.Text;
Mesmo assim os valores do radio button e checkbox nao grava.
25/05/2012
Joel Rodrigues
Se Estuda for bool, você deve usar cln.Estuda = this.ckbEstuda.Checked;
Enfim, qual o tipo das duas propriedades problemáticas?
25/05/2012
Sigrids Lima
Sexo esta como nchar(1)
Estuda (bit)
se nao for como posso descobrir
ate
25/05/2012
Joel Rodrigues
Já para a propriedade Sexo, que valore você vai armazenar? F/M, 0/1, H/M...?
Teste o seguinte:
cl.Estuda = ckbEstuda.Checked; cl.Sexo = (rbMasculino.Checked?´´M´´:´´F´´);
Dessa forma você insere M ou F no sexo e True ou False no Estuda. Deu pra sacar a ideia?
Qualquer dúvida, é só falar.
26/05/2012
Sigrids Lima
Agora ja o radio button nao conseguir, o que pode ser melhor como string ou bool e como seria o codigo?
exemplo:
cln.Sexo = this.rdMasculino.Checked;
cln.Sexo = this.rdFeminino.Checked;
27/05/2012
Joel Rodrigues
Ao meu ver, como você tem um campo texto, pode gravar M ou F, foi o que fiz no exemplo acima. Qual foi o problema?
28/05/2012
Sigrids Lima
cln.Sexo = (rdMasculino.Checked?F:M);
cln.Sexo = (rdFeminino.Checked ? F : M);
coloquei como string e
cln.Estuda = this.ckbEstuda.Checked;
como bool. Ate ai blz, conseguir gravar os valore no db, so que coloquei um datagridview com um evento click, quando clico na grid, os valores das textbox aparecem normais, somente o do radio button e da checkbox nao vem selecionado e dando um erro Cannot implicitly convert type string to bool na linha ckbEstuda.Checked = dgvNome.CurrentRow.Cells[5].Value.ToString();
Obs. os radiobutton e checkbox estao dentro de group box.
private void dgvNome_Click(object sender, EventArgs e)
{
habilitarControles();
btnAtualizar.Enabled = true;
btnExcluir.Enabled = true;
btnSalvar.Enabled = false;
txtCodigo.Text = dgvNome.CurrentRow.Cells[0].Value.ToString();
txtNome.Text = dgvNome.CurrentRow.Cells[1].Value.ToString();
txtEndereço.Text = dgvNome.CurrentRow.Cells[2].Value.ToString();
rdMasculino.Text = dgvNome.CurrentRow.Cells[3].Value.ToString();
rdFeminino.Text = dgvNome.CurrentRow.Cells[4].Value.ToString();
ckbEstuda.Checked = dgvNome.CurrentRow.Cells[5].Value.ToString();
rtbObs.Text = dgvNome.CurrentRow.Cells[6].Value.ToString();
}
Aguardo amigo
30/05/2012
Joel Rodrigues
Como os campos Sexo e Estuda estão aparecendo no GridView? True/False ou 0/1 e M/F?
Para o campo Estuda, você deve precisar de algo assim:
ckbEstuda.Checked = Convert.ToBoolean(dgvNome.CurrentRow.Cells[5].Value);
Outra coisa, como é que você está tratando o sexo? Tem dois campos? Reveja isso aí.
30/05/2012
Sigrids Lima
Criei no banco a opção sexo como como nchar(1) e a propriedade como string e com valores M e F, criei dois radio buttons com os respectivos sexo M e F.
Olha o codigo para salvar
cln.Sexo = (rdMasculino.Checked?F:M);
cln.Sexo = (rdFeminino.Checked ? F : M);
So nao estou conseguindo voltar os valores quando clico na grid.
Tentei colocar assim mais nao deu certo
rdMasculino.Checked = dgvNome.Rows[0].Selected = true;
rdFeminino.Checked = dgvNome.Rows[0].Selected = true;
31/05/2012
Joel Rodrigues
rdMasculino.Checked = dgvNome.CurrentRow.Cells[COLUNA_SEXO].Value.ToString() == ´´M´´;
rdFeminino.Checked = dgvNome.CurrentRow.Cells[COLUNA_SEXO].Value.ToString() == ´´F´´;
Clique aqui para fazer login e interagir na Comunidade :)