Jump to content
Elrosnum

Checkbox - Dúvida

Recommended Posts

Elrosnum

Boa tarde a todos...

Como sabem comecei à pouco tempo a aprender C#...

Já consegui fazer um sistema de login com ligação a BD :P

Agora, o que me está a causar dificuldades é o registo de utilizador.

No caso do comendo INSERT não deve ser muito diferente do SELECT, o que queria saber era por exemplo escolher o nivel de utilizador, ou seja, se é Administrador ou utilizador padrão, para isso decidi criar duas checkbox em que no registo se seleccionar 1 ou outra dar-me um numero de nivel (1 no caso de Admin e 2 no case de User padrão).

1ª Pergunta: Como é que posso fazer para que se escolher apenas e só uma checkbox? (Não podem estar seleccionadas as duas ao mesmo tempo) Sei que posso fazer isso com um IF (No VB é facil, mas C# não deve ser muito diferente, mas já estiva à procura e não consegui encontrar =/)

2ª Pergunta: Como é que defino o numero do nivel? (Pensei em criar uma variavel Nivel e depois criar um IF e dizer se a checkbox1 tiver seleccionada então equivale ao nivel 1 e por ai adiante, está correcto o meu pensamento?)

Obrigado desde já :D

Share this post


Link to post
Share on other sites
filiperainho

Por vez de um checkbox podes usar radiobutton (dentro de um GroupBox), assim apenas é possível seleccionar uma opção.

E depois o valor podes fazer com IF, fazes uma verificação para cada radiobutton. Do genero:

int acesso;
            if (radioButton1.Checked == true)
            {
                acesso = 1;//user
            }
            if (radioButton2.Checked == true)
            {
                acesso = 2;//admin
            }


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
Elrosnum

Também é uma ideia =]

Eu disse checkBox porque estou habituado ao VB xD

Vou testar e depois digo algo...

Obrigado filiperainho :P

Share this post


Link to post
Share on other sites
filiperainho

Isso não tem nada que saber é muito simples de implementar.

Boa sorte.


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
Elrosnum

Boas

Estive  a usar os radiobuttons como indicas-te...

Tenho um pequeno problema, consigo inserir os registos na BD mas quando selecciono um radiobutton ele adiciona o valor 0 (zero) na BD, tenho o código tal e qual o que me mandas-te...

Podes me ajudar mais uma vez?

Obrigado desde já :P

Share this post


Link to post
Share on other sites
nando4

Boas...

Se quiseres podes usar as checkboxes ( se te sentires mais a vontade) apenas tens de fazer isto para quando seleccionares uma, a outra nao ficar selecionada:

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                checkBox2.Checked = false;
            }
            else if (checkBox2.Checked == true)
            {
                checkBox1.Checked = false;
            }
        }

        private void checkBox2_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox2.Checked == true)
            {
                checkBox1.Checked = false;
            }
            else if (checkBox1.Checked == true)
            {
                checkBox2.Checked = false;
            }
        }

Cumps

Share this post


Link to post
Share on other sites
filiperainho

            int acesso;
            if (radioButton1.Checked == true)
            {
                acesso = 1;//user
            }
            else
            {
                acesso = 2;//admin
            }

Já trabalhei varias vezes com este raciocínio, e nunca me deu problemas.


Programador - C# ; C ; PHP ; JavaScript ; CSS ; HTML ; iniciante em Android.

Share this post


Link to post
Share on other sites
Elrosnum

private void button1_Click(object sender, EventArgs e)

        {

            if (radioButton1.Checked == true)

            {

                nivel = 1;//admin

            }

            else

            {

                nivel = 2;//user

            }

Este é o meu código!

a declaração da variável nivel (no caso que me mostras t é o acesso) está declarada em cima :P

Não consigo perceber qual é o erro =X

É que ele so regista o nivel se escolher o radiobutton Administrador, se escolher o radiobutton de Utilizador, ele regista, mas na tabela do SQL aparece com o nivel 0 (zero) =X e deveria aparecer 2 :s

Podem-me ajudar sff?

Desculpa a insistência =/

Obrigado desde já...

Share this post


Link to post
Share on other sites
nando4

Experimenta fazer:

else if(radioButton2.Checked == true)
{
      nivel = 2;
}

Cumps

Share this post


Link to post
Share on other sites
Elrosnum

Acho que já descobri o Erro, mas não o sei resolver =X

Reparem:

private void button1_Click(object sender, EventArgs e)
        {

            if (radioButton1.Checked == true)
            {
                nivel = 1;//admin
            }

            else if (radioButton2.Checked == true)
            {
                nivel = 2;//user
            }

            SqlConnection conn = new SqlConnection(connection);

            conn.Open();

            SqlCommand cmd = new SqlCommand("INSERT INTO dbo.Tbl_Login ([Nome], [Password], [Nivel]) VALUES (@Nome, @Password, @Nivel)");

            cmd.Parameters.Clear();
            cmd.Parameters.AddWithValue("@Nome", textBox1.Text);
            cmd.Parameters.AddWithValue("@Password", textBox2.Text);
            [b]cmd.Parameters.AddWithValue("@Nivel", radioButton1.Checked);[/b]
            
            cmd.Connection = conn;

            cmd.ExecuteNonQuery();

            conn.Close();

            MessageBox.Show("Registo Inserido com Sucesso!", "Sucesso!");

Na linha que está a Bold, eu só estou a definir que ele regista o nivel no radioButton1 certo?

Mas eu ontem à noite andei a fazer testes e por exemplo, se meter uma linha igual mas com o radiobutton2 ele vai -me dar erro (Diz que a variavel Nivel está repetida)

Será que é isso? :O

Share this post


Link to post
Share on other sites
nando4

Troca:

cmd.Parameters.AddWithValue("@Nivel", radioButton1.Checked);

para:

cmd.Parameters.AddWithValue("@Nivel", nivel);

Cumps

Share this post


Link to post
Share on other sites
Elrosnum

É isso mesmo =D

Muito obrigado aos dois pela paciência e pela ajuda :P

Vocês são grandes, muito GRANDES xD

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.