Bom dia Pessoal! Como vocês estão?
Tela de Usuário
Clique no formulário frmUsuario e modifique as propriedades a seguir:
Propriedades | Valores |
Icon | Selecione o Ícone |
Size | 565; 492 |
StartPostion | CenterScreen |
Text | Cadastro de Usuário |
Insira uma GroupBox e mude as propriedades a seguir:
Propriedades | Valores |
Location | 12; 45 |
Size | 533; 150 |
Text | Cadastrar Usuário |
Arraste o campo para dentro da GroupBox como na imagem:
Renomei as Labels e coloque no canto esquerdo como na imagem:
Renomeie o Text da Barra de Funcionalidade do formulário
Seguindo a ordem da esquerda para a direita:
Move first | para | Mover para o Primeiro |
Move previous | Para | Mover para o Anterior |
Current position | Para | Posição Atual |
of {0} | Para | De {0} e ToolTip para Total de Registro |
Move next | Para | Mover para o Próximo |
Move last | Para | Mover para o Último |
Add new | Para | Adicionar Registro |
Delete | Para | Excluir Registro |
Save Data | para | Salvar Registro |
Insira os componentes na GroupBox a seguir:
Label | Text = Filtrar Por |
ComboBox | Edit Items: Código, usuário e name = cbmFiltrar |
Label | Text = “=” |
TextBox | Name = txtPesquisar |
Botão | Name = btnPesquisar , Text = Pesquisar |
Como na imagem:
Adicione uma groupBox mude a propriedade Text para Usuário(s) e arraste da paleta Data Source a DataGridView da tabela tbUsuario. Como na imagem:
Clique na DataGridView na seta e clique em Dock in parent container. Como na imagem:
Com isso a DataGridView ocupara o espaço inteiro da GroupBox.
Desabilite a Enable Adding, Enable Editing e Enable Deleting. Clique em Edit Column. Coloque os campos a seguir como Visible = false;
Senha e repita a senha.
Como na imagem:
Nesta etapa modifique o HeaderText para mudar o Texto de exibição e Width para mudar a largura de cada coluna.
Clique duas vezes no botão Pesquisar e insira o código:
try { if (cbmFiltrar.Text == "Código") { //Define a instrução Sql string sql = "SELECT * FROM tbUsuario WHERE idUsuario =" + txtPesquisar.Text + ""; //Lê os dados da variavel sql e conectar no cn cmd = new SqlCommand(sql, cn); //Abre conexão cn.Open(); //Define o valor da CommandType para cmd cmd.CommandType = CommandType.Text; /*Representa um conjunto de comandos de dados e uma conexão de banco de dados que são usados para preencher o DataSet e atualizar um banco de dados SQL Server.*/ SqlDataAdapter da = new SqlDataAdapter(cmd); //Representa uma tabela de dados na memória. DataTable usuario = new DataTable(); /* Adiciona ou atualiza linhas * dados usando o DataTable.*/ da.Fill(usuario); /*A tbUsuarioDataGridView recebe o DataTable usuario*/ tbUsuarioDataGridView.DataSource = usuario; //Fechar a conexão } if (cbmFiltrar.Text == "Usuário") { //define a instrução SQL string sql = "SELECT * FROM tbUsuario WHERE usuario LIKE '%" + txtPesquisar.Text + "%'"; cmd = new SqlCommand(sql, cn); cn.Open(); cmd.CommandType = CommandType.Text; SqlDataAdapter da = new SqlDataAdapter(cmd); DataTable usuario = new DataTable(); da.Fill(usuario); tbUsuarioDataGridView.DataSource = usuario; } } catch (Exception ex) { MessageBox.Show(ex.Message); } finally { cn.Close(); } |
Feito isso o layout do formulário deve ficar assim:
Mude a propriedade da TextBox Senha e Repita a Senha para:
Campo | Propriedade | Para | Valor |
Senha | PasswordChar | Para | ● |
Repita a Senha | PasswordChar | Para | ● |
Insira no ComboBox Nível de Acesso os componentes a Seguir(Edit Items):
Administrador e Operador. Lembrando que a primeira linha é vazia e cada palavra em uma linha.
Mude a propriedade DropDownStyle para DropDownList;
Desabilite o campo Código, Data do Cadastro e Cadastrado por, pela propriedade Enable = false;
Clique duas vezes no botão Salvar.
Observe que ele esta preenchido, então iremos trabalhar com ele as regras de negocio.
Quais?
Os campos que são obrigatório
Nível de Acesso e as mensagem de cadastro com sucesso, não foi possível o cadastro.
Copie o Código a Seguir:
try { //Se os campos estiver preenchido faça if ((usuarioTextBox.Text != "") && (nivelAcessoComboBox.Text != "") && (senhaTextBox.Text != "") && (repitaSenhaTextBox.Text != "")) { //Se as senhas forem igual faça if (senhaTextBox.Text == repitaSenhaTextBox.Text) { //Mostrar a Data do Cadastro na Hora if (dataDiaTextBox.Text == "") { dataDiaTextBox.Text = DateTime.Now.ToString(); } //Mostrar quem Cadastrou o usuario if (cadastradorPorTextBox.Text == "") { cadastradorPorTextBox.Text = frmLogin.usuarioConectado; } //Executar a aplicação this.Validate(); this.tbUsuarioBindingSource.EndEdit(); MessageBox.show("Cadastrado realizado com sucesso") this.tbUsuarioTableAdapter.Update(this.servicoDataSet.tbUsuario); } else { //Caso as senhas são diferentes MessageBox.Show("As senhas estão diferentes"); } } else { //Ser os campos não estiverem preenchido MessageBox.Show("Todos os campos não podem ficar vazio"); } } catch (Exception ex) { //Caso haja uma exceção será tratada neste código MessageBox.Show("Não foi possível salvar pelo seguinte motivo: " + ex.Message); } |
Adicione este método para limpar o formulário:
private void LimparCampo() { idUsuarioTextBox.Clear(); usuarioTextBox.Clear(); senhaTextBox.Clear(); repitaSenhaTextBox.Clear(); nivelAcessoComboBox.SelectedIndex = -1; dataDiaTextBox.Clear(); cadastradorPorTextBox.Clear(); } |
Clique uma vez no DataGrid Usuario em Events > MouseDoubleClick
LimparCampo(); idUsuarioTextBox.Text = tbUsuarioDataGridView.CurrentRow.Cells[0].Value.ToString(); usuarioTextBox.Text = tbUsuarioDataGridView.CurrentRow.Cells[1].Value.ToString(); senhaTextBox.Text = tbUsuarioDataGridView.CurrentRow.Cells[2].Value.ToString(); repitaSenhaTextBox.Text = tbUsuarioDataGridView.CurrentRow.Cells[3].Value.ToString(); nivelAcessoComboBox.Text = tbUsuarioDataGridView.CurrentRow.Cells[4].Value.ToString(); dataDiaTextBox.Text = tbUsuarioDataGridView.CurrentRow.Cells[5].Value.ToString(); cadastradorPorTextBox.Text = tbUsuarioDataGridView.CurrentRow.Cells[6].Value.ToString(); |
By: Natanael
Porque no código fica dando error na parte cmd = new SqlCommand(sql, cn); da certo mas o cn já da error o que é para eu fazer.
ResponderExcluirÉ Necessário declarar as variáveis a seguir, para que o programa possar ser conectar com o banco de dados.
ResponderExcluirvamos declarar a variável
SqlConnection = Responsável pela conexão com o banco de dados
SqlCommand = Responsável pela código em sql.
Declare no inicio do formulário assim:
SqlConnection cn = new SqlConnection(Properties.Settings.Default.ServicoConnectionString);
//ServicoConnection nome que se deu a String de Conexão)
SqlCommand cmd = null;
Esta tudo correto mas faço um cadastro no banco de dados e o login da certo mas se eu fechar o programa e abrir novamente ele exclui os cadastros o que eu faço agora.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluirBoa tarde Natanael, parabéns pelo tutorial. Sou inciante na linguagem C# e estou precisando entregar pro cliente um programa de ordem de serviço, já fiz todos os seus passos, mas no form do usuário está dando erro no: CMD e no CN, já fiz o passo logo acima, mas mesmo assim continua dando erro. Por favor pode me ajudar ou me adicionar no seu msn, para conversarmos te mandei um convite. thiagorodrigues320@hotmail.com ou thiago.cnpq@gmail.com. Vlw parabéns mais uma vez ótimo tutorial.
ResponderExcluirMuito bom!
ResponderExcluirMesmo um iniciante é capaz de aprender com seus tutoriais, digito tudo sem copiar e leio e releio os codigos, aprendi a identificar cada função e como achar um erro, estou seguindo até aqui sem problemas! parabéns mesmo pelo programa, muito bem construido!
Att. Paulo Orsuli
Muito obrigado Paulo!
ExcluirPrecisando de algum help tô na área.