@KMG_1 escreveu:
Boa tarde Senhores(a),
Estou tentando criar Checkbox com os nomes dos setores no cadastro de usuários para dar acesso as abas que existem no menu principal do sistema. Exemplo preencho os campos textbox1_código, textbox2_nome e textbox3_login... e na checkbox possui os nomes que aparecem na aba do menu principal como SISTEMA, ALMOXARIFADO, RH, RELATÓRIO entre outros... Se caso eu crio um usuário administrador clico em todas as checkbox e dou permissão a todos os campos e caso crie usuário almoxarifado somente a aba almoxarifado ficará disponível.
Estou utilizando Visual Studio 2015 C# com banco de dados SQL Server 2004
No banco de dados eu criei a tabela chamada cadastro_funcionario para utilizar as checkbox eu criei o nome cad_acessosistema com valor BIT
CREATE TABLE [dbo].[cadastro_funcionario]( [cad_cod] [int] IDENTITY (1,1) NOT NULL, [cad_nome] [varchar] (95) NULL, [cad_login] [varchar] (95) NULL, [cad_senha] [varchar] (95) NULL, [cad_acessosistema] [bit] NULL, CONSTRAINT [PK_cadastro_funcionario] PRIMARY KEY CLUSTERED (
No C# eu estou utilizando 3 camadas
NO BOTÃO SALVAR EM CADASTRO DE FUNCIONÁRIOS O CÓDIGO ESTÁ DESSA MANEIRA LOGO ABAIXO EU FIZ O TESTE SEM PRECISAR CONECTAR COM O BANCO DE DADOS EM UM NOVO PROJETO E DEU CERTO UTILIZANDO 3 CHECKBOX E UM BOTAO SALVAR USANDO SOMENTE O COMANDO IF , APÓS TENTAR CRIAR A TABELA NO BANCO DE DADOS E SALVAR O CADASTRO DO FUNCIONÁRIO ELE NÃO ESTÁ SALVANDO E NÃO CONSIGO FAZER COM QUE FUNCIONE AS CHECKBOX. ALGUÉM PODERIA ME ESCLARECER PORQUE NÃO ESTOU CONSEGUINDO SALVAR NO BANCO SE É O CÓDIGO NO C# OU A CRIAÇÃO NO BANCO DE DADOS QUE NÃO ESTÁ CORRETA?
OBRIGADO PELA ATENÇÃO ATE BREVE.
try { //leitura dos dados ModeloCadastroDeFuncionario modelo = new ModeloCadastroDeFuncionario(); frmPrincipal principal = new frmPrincipal(); modelo.CadNome = txtNome.Text; modelo.CadLogin = txtLogin.Text; modelo.CadSenha = txtSenha.Text; modelo.CadEmail = txtEmail.Text; modelo.CadRamal = txtRamal.Text; modelo.CadSetor = txtSetor.Text; modelo.CadMatricula = txtMatricula.Text; //SISTEMA CHECKBOX if (modelo.CadAcessoSistema != null) { //SISTEMA chkSistema.Checked = true; principal.mnuSistema.Enabled = true; } else { //SISTEMA chkSistema.Checked = false; principal.mnuSistema.Enabled = false; } //SISTEMA CADASTRO if (chkSistemaCadastro.Checked == true) { principal.mnuSitemaCadastro.Enabled = true; } if (chkSistemaCadastro.Checked == false) { principal.mnuSitemaCadastro.Enabled = false; } //SISTEMA CADASTRO FUNCIONARIOS if (chkSistemaFuncionario.Checked == true) { principal.mnuFuncionario.Enabled = true; } if (chkSistemaFuncionario.Checked == false) { principal.mnuFuncionario.Enabled = false; } //objeto para gravar os dados no banco DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao); BBLCadastroDeFuncionarios bll = new BBLCadastroDeFuncionarios(cx); if (this.operacao == "inserir") { // cadastrar uma categoria bll.Incluir(modelo); MessageBox.Show("Cadastrado efetuado: Código " + modelo.CadCod.ToString(), "Cadastro de Funcionário", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } else { //alterar uma categoria modelo.CadCod = Convert.ToInt32(txtCodigo.Text); bll.Alterar(modelo); MessageBox.Show("Cadastro alterado com sucesso", "Cadastro de Funcionário", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); //mostra a mensagem do cadastro } this.LimpaTela(); this.alterabotoes(1); } catch (Exception erro) { MessageBox.Show(erro.Message); } ------------------------------------------------------------------------------------------------------------------------------------------ NA CLASSE MODELO EU CRIO O GET E SET. namespace MODELO { public class ModeloCadastroDeFuncionario { //Construtores public ModeloCadastroDeFuncionario() { this.CadCod = 0; this.CadNome = ""; this.CadLogin = ""; this.CadSenha = ""; this.CadEmail = ""; this.CadSetor = ""; this.CadRamal = ""; this.CadMatricula = ""; //this.CadEmpresa = ""; //this.CadDtCadastro = DateTime.Now; this.CadAcessoSistema = ""; } public ModeloCadastroDeFuncionario(int cod, string nome, string login, string senha, string email, string setor, string ramal, string matricula, string empresa, DateTime dtcadastro, bool CadAcessoSistema) { this.CadCod = cod; this.CadNome = nome; this.CadLogin = login; this.CadSenha = senha; this.CadEmail = email; this.CadSetor = setor; this.CadRamal = ramal; this.CadMatricula = matricula; //this.CadEmpresa = empresa; //this.CadDtCadastro = dtcadastro; this.CadAcessoSistema = cad_acessosistema; } // Propriedades da Classe private int cad_cod; public int CadCod { get { return this.cad_cod; } set { this.cad_cod = value; } } private string cad_nome; public string CadNome { get { return this.cad_nome; } set { this.cad_nome = value; } } private string cad_login; public string CadLogin { get { return this.cad_login; } set { this.cad_login = value; } } private string cad_senha; public string CadSenha { get { return this.cad_senha; } set { this.cad_senha = value; } } private string cad_email; public string CadEmail { get { return this.cad_email; } set { this.cad_email = value; } } private string cad_setor; public string CadSetor { get { return this.cad_setor; } set { this.cad_setor = value; } } private string cad_ramal; public string CadRamal { get { return this.cad_ramal; } set { this.cad_ramal = value; } } private string cad_matricula; public string CadMatricula { get { return this.cad_matricula; } set { this.cad_matricula = value; } } //private string cad_empresa; //public string CadEmpresa //{ // get { return this.CadEmpresa; } // set { this.cad_empresa = value; } //} //private DateTime cad_dtcadastro; //public DateTime CadDtCadastro //{ // get { return this.cad_dtcadastro; } // set { this.cad_dtcadastro = value; } //} private string cad_acessosistema; public string CadAcessoSistema { get { return this.cad_acessosistema; } set { this.cad_acessosistema = value; } } ---------------------------------------------------------------------------------------------- NA CLASSE BLL public class BBLCadastroDeFun cionarios { private DALConexao conexao; public BBLCadastroDeFuncionarios(DALConexao cx) { this.conexao = cx; } public void Incluir(ModeloCadastroDeFuncionario modelo) { if (modelo.CadNome.Trim().Length == 0) { throw new Exception("O cadastro do nome do funcionário é obrigatório "); } if (modelo.CadLogin.Trim().Length == 0) { throw new Exception("O cadastro do login do funcionario é obrigatório "); } if (modelo.CadSenha.Trim().Length == 0) { throw new Exception("O cadastro da senha do funcionario é obrigatório "); } if (modelo.CadSetor.Trim().Length == 0) { throw new Exception("O cadastro do setor do funcionario é obrigatório "); } string strRegex = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0,9]{1,3})(\\]?)$"; Regex re = new Regex(strRegex); if (!re.IsMatch(modelo.CadEmail)) { throw new Exception("Digite um E-Mail válido !"); } //if (modelo.CadEmail.Trim().Length == 0) //{ // throw new Exception("O cadastro do E-mail do funcionario é obrigatório "); //} if (modelo.CadLogin.Trim().Length == 0) { throw new Exception("O cadastro do login do funcionario é obrigatório "); } if (modelo.CadRamal.Trim().Length == 0) { throw new Exception("O cadastro do ramal do funcionario é obrigatório "); } if (modelo.CadMatricula.Trim().Length == 0) { throw new Exception("O cadastro da matricula do funcionario é obrigatório "); } //if (modelo.CadEmpresa.Trim().Length == 0) //{ // throw new Exception("O cadastro da empresa é obrigatorio"); //} //if (modelo.CadDtCadastro.Trim().Length == 0) //{ // throw new Exception("A data de cadastro é obrigatório"); //} DALCadastroDeFuncionarios DALobj = new DALCadastroDeFuncionarios(conexao); DALobj.Incluir(modelo); } public void Alterar(ModeloCadastroDeFuncionario modelo) { if (modelo.CadNome.Trim().Length == 0) { throw new Exception("O cadastro do nome do funcionário é obrigatório "); } if (modelo.CadLogin.Trim().Length == 0) { throw new Exception("O cadastro do login do funcionario é obrigatório "); } if (modelo.CadSenha.Trim().Length == 0) { throw new Exception("O cadastro da senha do funcionario é obrigatório "); } if (modelo.CadSetor.Trim().Length == 0) { throw new Exception("O cadastro do setor do funcionario é obrigatório "); } string strRegex = "^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0,9]{1,3})(\\]?)$"; Regex re = new Regex(strRegex); if (!re.IsMatch(modelo.CadEmail)) { throw new Exception("Digite um E-Mail válido !"); } //if (modelo.CadEmail.Trim().Length == 0) //{ // throw new Exception("O cadastro do E-mail do funcionario é obrigatório "); //} if (modelo.CadLogin.Trim().Length == 0) { throw new Exception("O cadastro do login do funcionario é obrigatório "); } if (modelo.CadRamal.Trim().Length == 0) { throw new Exception("O cadastro do ramal do funcionario é obrigatório "); } if (modelo.CadMatricula.Trim().Length == 0) { throw new Exception("O cadastro da matricula do funcionario é obrigatório "); } //if (modelo.CadEmpresa.Trim().Length == 0) //{ // throw new Exception("O cadastro da empresa é obrigatorio"); //} //if (modelo.CadDtCadastro.Trim().Length == 0) //{ // throw new Exception("A data de cadastro é obrigatório"); //} DALCadastroDeFuncionarios DALobj = new DALCadastroDeFuncionarios(conexao); DALobj.Alterar(modelo); } public void Excluir(int codigo) { DALCadastroDeFuncionarios DalObj = new DALCadastroDeFuncionarios(conexao); DalObj.Excluir(codigo); } public DataTable Localizar(String valor) { DALCadastroDeFuncionarios Dalobj = new DALCadastroDeFuncionarios(conexao); return Dalobj.Localizar(valor); } public ModeloCadastroDeFuncionario CarregaModeloCadastroDeFuncionario(int codigo) { DALCadastroDeFuncionarios DALobj = new DALCadastroDeFuncionarios(conexao); return DALobj.CarregaModeloCadastroDeFuncionario(codigo); } public DataTable LocalizarPorNome(String valor) { DALCadastroDeFuncionarios DALobj = new DALCadastroDeFuncionarios(conexao); return DALobj.LocalizarPorNome(valor); } public DataTable LocalizarPorMatricula(String valor) { DALCadastroDeFuncionarios DALobj = new DALCadastroDeFuncionarios(conexao); return DALobj.LocalizarPorMatricula(valor); } public ModeloCadastroDeFuncionario CarregaModeloCadastroDeFuncionario(string matricula) { DALCadastroDeFuncionarios DALobj = new DALCadastroDeFuncionarios(conexao); return DALobj.CarregaModeloCadastroDeFuncionario(matricula); } } -------------------------------------------------------------------------------------------------- NA CLASSE DAL COMUNICA COM O BANCO DE DADOS namespace DAL { public class DALCadastroDeFuncionarios { private DALConexao conexao; public DALCadastroDeFuncionarios(DALConexao cx) { this.conexao = cx; } public void Incluir(ModeloCadastroDeFuncionario modelo) { SqlCommand cmd = new SqlCommand(); cmd.Connection = conexao.objetoConexao; cmd.CommandText = "INSERT INTO cadastro_funcionario (cad_nome, cad_login, cad_senha, cad_email," + "cad_setor, cad_ramal, cad_matricula, cad_acessosistema) VALUES (@cad_nome, @cad_login, @cad_senha, @cad_email," + "@cad_setor, @cad_ramal, @cad_matricula, @cad_acessosistema); SELECT @@IDENTITY;"; cmd.Parameters.AddWithValue("cad_nome", modelo.CadNome); cmd.Parameters.AddWithValue("cad_login", modelo.CadLogin); cmd.Parameters.AddWithValue("cad_senha", modelo.CadSenha); cmd.Parameters.AddWithValue("cad_email", modelo.CadEmail); cmd.Parameters.AddWithValue("cad_setor", modelo.CadSetor); cmd.Parameters.AddWithValue("cad_ramal", modelo.CadRamal); cmd.Parameters.AddWithValue("cad_matricula", modelo.CadMatricula); //cmd.Parameters.AddWithValue("cad_empresa", modelo.CadEmpresa); //cmd.Parameters.AddWithValue("cad_dtcadastro", modelo.CadDtCadastro); cmd.Parameters.AddWithValue("cad_acessosistema", modelo.CadAcessoSistema); conexao.Conectar(); modelo.CadCod = Convert.ToInt32(cmd.ExecuteScalar()); conexao.Desconectar(); } public void Alterar(ModeloCadastroDeFuncionario modelo) { SqlCommand cmd = new SqlCommand(); cmd.Connection = conexao.objetoConexao; cmd.CommandText = "UPDATE cadastro_funcionario SET cad_nome = @cad_nome, cad_login = @cad_login, cad_senha = @cad_senha," + "cad_email = @cad_email, cad_setor = @cad_setor, cad_ramal = @cad_ramal, cad_matricula = @cad_matricula, cad_acessosistema = @cad_acessosistema WHERE cad_cod = @codigo;"; cmd.Parameters.AddWithValue("@codigo", modelo.CadCod); cmd.Parameters.AddWithValue("@cad_nome", modelo.CadNome); cmd.Parameters.AddWithValue("@cad_login", modelo.CadLogin); cmd.Parameters.AddWithValue("@cad_senha", modelo.CadSenha); cmd.Parameters.AddWithValue("@cad_email", modelo.CadEmail); cmd.Parameters.AddWithValue("@cad_setor", modelo.CadSetor); cmd.Parameters.AddWithValue("@cad_ramal", modelo.CadRamal); cmd.Parameters.AddWithValue("@cad_matricula", modelo.CadMatricula); //cmd.Parameters.AddWithValue("cad_empresa", modelo.CadEmpresa); //cmd.Parameters.AddWithValue("cad_dtcadastro", modelo.CadDtCadastro); cmd.Parameters.AddWithValue("@cad_acessosistema", modelo.CadAcessoSistema); conexao.Conectar(); modelo.CadCod = Convert.ToInt32(cmd.ExecuteScalar()); conexao.Desconectar(); } public void Excluir(int codigo) { SqlCommand cmd = new SqlCommand(); cmd.Connection = conexao.objetoConexao; cmd.CommandText = "DELETE FROM cadastro_funcionario WHERE cad_cod = @codigo;"; cmd.Parameters.AddWithValue("@codigo", codigo); conexao.Conectar(); cmd.ExecuteNonQuery(); conexao.Desconectar(); } public DataTable Localizar(String valor) { DataTable tabela = new DataTable(); SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM cadastro_funcionario WHERE cad_nome like '%" + valor + "%'", conexao.StringConexao); da.Fill(tabela); return tabela; } public DataTable LocalizarPorNome(String valor) { return Localizar(valor); } public DataTable LocalizarPorMatricula(String valor) { DataTable tabela = new DataTable(); SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM cadastro_funcionario WHERE cad_matricula like '%" + valor + "%'", conexao.StringConexao); da.Fill(tabela); return tabela; } public ModeloCadastroDeFuncionario CarregaModeloCadastroDeFuncionario(int codigo) { ModeloCadastroDeFuncionario modelo = new ModeloCadastroDeFuncionario(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conexao.objetoConexao; cmd.CommandText = "SELECT * FROM cadastro_funcionario WHERE cad_cod = @codigo"; cmd.Parameters.AddWithValue("@codigo", codigo); conexao.Conectar(); SqlDataReader registro = cmd.ExecuteReader(); if (registro.HasRows) { registro.Read(); modelo.CadCod = Convert.ToInt32(registro["cad_cod"]); modelo.CadNome = Convert.ToString(registro["cad_nome"]); modelo.CadLogin = Convert.ToString(registro["cad_login"]); modelo.CadSenha = Convert.ToString(registro["cad_senha"]); modelo.CadEmail = Convert.ToString(registro["cad_email"]); modelo.CadSetor = Convert.ToString(registro["cad_setor"]); modelo.CadRamal = Convert.ToString(registro["cad_ramal"]); modelo.CadMatricula = Convert.ToString(registro["cad_matricula"]); //modelo.CadEmpresa = Convert.ToString(registro["cad_empresa"]); //modelo.CadAcessoSistema = Convert.ToString(registro["cad_acessosistema"]); } conexao.Desconectar(); return modelo; } public ModeloCadastroDeFuncionario CarregaModeloCadastroDeFuncionario(string matricula) { ModeloCadastroDeFuncionario modelo = new ModeloCadastroDeFuncionario(); SqlCommand cmd = new SqlCommand(); cmd.CommandText = "SELECT * FROM cadastro_funcionario WHERE cad_matricula = @matricula"; cmd.Parameters.AddWithValue("@matricula", matricula); conexao.Conectar(); SqlDataReader registro = cmd.ExecuteReader(); if (registro.HasRows) { registro.Read(); modelo.CadCod = Convert.ToInt32(registro["cad_cod"]); modelo.CadNome = Convert.ToString(registro["cad_nome"]); modelo.CadLogin = Convert.ToString(registro["cad_login"]); modelo.CadSenha = Convert.ToString(registro["cad_senha"]); modelo.CadEmail = Convert.ToString(registro["cad_email"]); modelo.CadSetor = Convert.ToString(registro["cad_setor"]); modelo.CadRamal = Convert.ToString(registro["cad_ramal"]); modelo.CadMatricula = Convert.ToString(registro["cad_matricula"]); //modelo.CadEmpresa = Convert.ToString(registro["cad_empresa"]); } conexao.Desconectar(); return modelo; } } -------------------------------------------------------------------------------- TEM OUTRA CLASSE DAL INFORMAÇÕES DO BANCO DE DADOS namespace DAL { public class DALConexao //É utilizado o public para reconhecer o metodo em outra classe { private String _stringConexao; //string de conexão private SqlConnection _conexao; // conexão com o SQL private SqlTransaction _transaction; // transação do banco de dados permite operações com exito ou desfeitas public DALConexao(String dadosConexao) { this._conexao = new SqlConnection(); // instancia de conexão com o banco de dados this.StringConexao = dadosConexao; // definir string de conexão this._conexao.ConnectionString = dadosConexao; // defini qual string de conexão para conectar no banco de dados passando para o construtor } public SqlTransaction ObjetoTransacao { get { return this._transaction; } set { this._transaction = value; } } public void IniciarTransacao() { this._transaction = _conexao.BeginTransaction(); } public void TerminarTransacao() { this._transaction.Commit(); // EFETUA AS GRAVAÇÕES NO BANCO } public void CancelarTransacao() { this._transaction.Rollback();// DESFAZ OQUE FOI GRAVADO NO BANCO } public String StringConexao { //String de conexao com o banco de dados get { return this._stringConexao; } set { this._stringConexao = value; } } public SqlConnection objetoConexao { //Conectar com o banco de dados get { return this._conexao; } set { this._conexao = value; } } public void Conectar() { //Conectar com o banco de dados this._conexao.Open(); } public void Desconectar() { //Desconectar com o banco de dados this._conexao.Close(); } } } ------------------------------------------------------------------------------------------------ CLASSE DAL CONEXAO COM O BANCO DE DADOS namespace DAL { public class DadosDaConexao { public static String servidor = @"aqui coloca o nome do servidor BD"; public static String banco = "aqui coloca o nome do BD"; public static String usuario = "aqui coloca o usuário caso tiver"; public static String senha = "aqui coloca a senha caso tiver"; public static String StringDeConexao { // devolve o status de conexão get { return @"Data Source="+servidor+";Initial Catalog="+banco+";Integrated Security=True"; } } } }
E OS FORMULÁRIOS CRIADO NA GUI
Mensagens: 3
Participantes: 2