none
Tela de Login

    Question

  • Boa  tarde.

    Pessoal alguém sabe como posso achar um exemplo de login que quando eu entro no meu projeto ele aparece em todas as telas o nome do usuário.
    E qualquer registro que ele fizer fica quem registrou ou alterou?
    Wednesday, March 03, 2010 4:18 PM

Answers

  • Fernando,

    Isso é uma combinação de coisas. O que eu faço aqui na empresa é o seguinte.

    A autenticação do SQL Server é SQL Server Authentication, quando o usuário entra no sistema ele autentica no banco de dados. Aí o sql server sabe o usuário que logou. Quando existe uma alteração, inserção ou deleteção, faço uma trigger que dispara o usuário que fez isso. Usando a função SUSER_SNAME do SQL SERVER.

    Agora se você quiser fazer isso via C# quando o usuário autenticar guarde o nome ou ID dele em uma variavel estática, assim no seu insert, update e delete você passa o valor na instrução.
    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    Wednesday, March 03, 2010 5:29 PM

All replies

  • Fernando,

    Isso é uma combinação de coisas. O que eu faço aqui na empresa é o seguinte.

    A autenticação do SQL Server é SQL Server Authentication, quando o usuário entra no sistema ele autentica no banco de dados. Aí o sql server sabe o usuário que logou. Quando existe uma alteração, inserção ou deleteção, faço uma trigger que dispara o usuário que fez isso. Usando a função SUSER_SNAME do SQL SERVER.

    Agora se você quiser fazer isso via C# quando o usuário autenticar guarde o nome ou ID dele em uma variavel estática, assim no seu insert, update e delete você passa o valor na instrução.
    Henrique Fávaro Tâmbalo - Se a resposta ajudou, marque como resposta!
    Wednesday, March 03, 2010 5:29 PM
  • Henriques Esta certo.

    O que voce pode fazer e criar uma tabela na sua base de dados com o nome Tabela_Registo_Informcao.

    Nesta tabela cria campos como:

    Field                                      Tipo                                            OBS

    ID------auto-incremento----------int                     -----------numeraco automaitca

    ID_Trabalhador_Usuario --------Texto/Numero              -----------Guarda o numero de que identifica o usuario no Systema

    Data----------------------             Data de hoje =============Guarda a Data que foi modificada o registo

    ID_Registo_Alterado                -int/ texto/numero--------------------Guarda o numero do registo alterado, pode ser, nome, endereco


    Uma das coisa que se faz na englaterra e, sempre que alguem tenta Alterar um REGISTO, o programa pergunta a password e se existe no sistema entao a pessoa faz a alteracao e as informacoes da pessoa que altrerou e guardada numa base de dados como a de cima.

    Just Be Humble Malange!
    Wednesday, March 03, 2010 5:55 PM
  • Então cara já consegui fazer isto agora o problema é a conexão na base de dados eu coloquei a conexão mas está dando erros.veja só o meu formulário.

     

    using System;

    using System.Collections.Generic;

    using System.ComponentModel;

    using System.Data;

    using System.Drawing;

    using System.Text;

    using System.Windows.Forms;

    using System.Data.OleDb;

    using System.Data.SqlClient;

     

     

    namespace Cadastro_de_Clientes2

    {

        public partial class Cadastro_produto : Form

        {

            public virtual bool Salvar()

            {

                return false;

            }

     

            public virtual bool Excluir()

            {

                return false;

            }

     

            public virtual bool Localizar()

            {

                return false;

            }

     

            public virtual bool Novo()

            {

                return false;

            }

     

            public Cadastro_produto()

            {

                InitializeComponent();

            }

     

            private void textBox1_TextChanged(object sender, EventArgs e)

            {

     

            }

     

            private void Cadastro_produto_Load(object sender, EventArgs e)

            {

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.Cadastro_de_fornecedores' table. You can move, or remove it, as needed.

                this.cadastro_de_fornecedoresTableAdapter.Fill(this.cadastro_de_produtosDataSet21.Cadastro_de_fornecedores);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.cadastro_de_clientes_Consulta' table. You can move, or remove it, as needed.

                this.cadastro_de_clientes_ConsultaTableAdapter.Fill(this.cadastro_de_produtosDataSet21.cadastro_de_clientes_Consulta);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter2.Fill(this.cadastro_de_produtosDataSet21.cadastro_de_clientes);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet1.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter1.Fill(this.cadastro_de_produtosDataSet1.cadastro_de_clientes);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter.Fill(this.cadastro_de_produtosDataSet.cadastro_de_clientes);

     

     

            }

     

            private void fillByToolStripButton_Click(object sender, EventArgs e)

            {

                try

                {

     

                }

                catch (System.Exception ex)

                {

                    System.Windows.Forms.MessageBox.Show(ex.Message);

                }

     

            }

     

            private void fillByToolStripButton_Click_1(object sender, EventArgs e)

            {

                try

                {

     

                }

                catch (System.Exception ex)

                {

                    System.Windows.Forms.MessageBox.Show(ex.Message);

                }

     

            }

     

            private void button1_Click(object sender, EventArgs e)

            {

     

            }

     

            private void textBox2_TextChanged(object sender, EventArgs e)

            {

     

            }

     

            private void textBox5_TextChanged(object sender, EventArgs e)

            {

     

            }

     

            private void fillByToolStripButton_Click_2(object sender, EventArgs e)

            {

            }

     

            private void btnsalvar_Click(object sender, EventArgs e)

            {

     

                if (Salvar())

                {

                    limpacontroles();

                    MessageBox.Show("Registro salvo com sucesso", "Aviso do Sistema",

                        MessageBoxButtons.OK, MessageBoxIcon.Information);

                }

                else

                {

                    MessageBox.Show("O registro não foi salvo,por favor verifique os erros!", "Erro",

                        MessageBoxButtons.OK, MessageBoxIcon.Information);

                }

     

     

     

            }

     

            private void bindingNavigator1_RefreshItems(object sender, EventArgs e)

            {

     

            }

            private void limpacontroles()

            {

                foreach (Control ctr in this.Controls)

                {

                    if (ctr is TextBox)

                        (ctr as TextBox).Text = "";

     

                    if (ctr is ComboBox)

                        (ctr as ComboBox).SelectedIndex = -1;

     

                    if (ctr is ListBox)

                        (ctr as ListBox).SelectedIndex = -1;

     

                    if (ctr is RadioButton)

                        (ctr as RadioButton).Checked = false;

     

                    if (ctr is CheckBox)

                        (ctr as CheckBox).Checked = false;

     

     

                    if (ctr is CheckedListBox)

                    {

                        foreach (ListControl item in (ctr as CheckedListBox).Items)

                            item.SelectedIndex = -1;

                    }

     

                }

     

            }

     

            private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)

            {

     

            }

     

            private void btnExcluir_Click(object sender, EventArgs e)

            {

     

                if (Excluir())

                {

     

                    limpacontroles();

                    MessageBox.Show("Registro excluido com sucesso", "Aviso do Sistema",

                        MessageBoxButtons.OK, MessageBoxIcon.Information);

     

                }

                else

                {

                    MessageBox.Show("O Registro não foi excluido,por favor verifique os erros", "Erro",

                        MessageBoxButtons.OK, MessageBoxIcon.Error);

     

                }

     

            }

     

            private void btnNovo_Click(object sender, EventArgs e)

            {

     

                if (Novo())

                {

     

                    limpacontroles();

                    MessageBox.Show("Novo", "Aviso do Sistema",

                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

     

                }

                else

                {

     

                    MessageBox.Show("Inserir Novo Registro", "Erro",

                        MessageBoxButtons.OK, MessageBoxIcon.Error);

     

                }

     

            }

     

            private void button2_Click(object sender, EventArgs e)

            {

     

            }

     

            private void HabilitaDesabilitaControles(bool bValue)

            {

     

                // percorre os controles da tela e os habilita ou desabilita

                foreach (Control ctr in this.Controls)

                {

     

                    if (ctr is ToolStrip)

                        continue;

     

                    ctr.Enabled = bValue;

     

                }

     

            }

     

            private void btnNovo_Click_1(object sender, EventArgs e)

            {

     

                if (Novo())

                {

     

                    limpacontroles();

                    MessageBox.Show("Novo", "Aviso do Sistema",

                        MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

     

                }

                else

                {

     

                    MessageBox.Show("Inserir Novo Registro", "Erro",

                        MessageBoxButtons.OK, MessageBoxIcon.Error);

     

                }

     

            }

     

            private void btnLocalizar_Click_1(object sender, EventArgs e)

            {

     

                if (Localizar())

                {

     

                    limpacontroles();

                    MessageBox.Show("Localize o Registro", "Aviso do Sistema",

                        MessageBoxButtons.OK, MessageBoxIcon.Information);

     

                }

                else

                {

     

                    MessageBox.Show("Localize o Registro", "Aviso do Sistema",

                        MessageBoxButtons.OK, MessageBoxIcon.Error);

     

     

                }

     

            }

     

        }

     

    }

     

     

     

               Vc tem como ajudar?

     

    Saturday, March 20, 2010 3:13 PM
  • que tipo de erro esta a dar? em que parte do codigo isto acontece?

     


    Just Be Humble Malange!
    Saturday, March 20, 2010 3:18 PM
  • vai ai meu msn ferhmd@hotmail.com é mais facil
    Saturday, March 20, 2010 3:21 PM
  • Então é quando eu inicio o codigo
    Saturday, March 20, 2010 3:23 PM
  • então está é uma conexão?

     // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.Cadastro_de_fornecedores' table. You can move, or remove it, as needed.

                this.cadastro_de_fornecedoresTableAdapter.Fill(this.cadastro_de_produtosDataSet21.Cadastro_de_fornecedores);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.cadastro_de_clientes_Consulta' table. You can move, or remove it, as needed.

                this.cadastro_de_clientes_ConsultaTableAdapter.Fill(this.cadastro_de_produtosDataSet21.cadastro_de_clientes_Consulta);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter2.Fill(this.cadastro_de_produtosDataSet21.cadastro_de_clientes);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet1.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter1.Fill(this.cadastro_de_produtosDataSet1.cadastro_de_clientes);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter.Fill(this.cadastro_de_produtosDataSet.cadastro_de_clientes);

     

    Saturday, March 20, 2010 3:24 PM
  • então está é uma conexão?

     // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.Cadastro_de_fornecedores' table. You can move, or remove it, as needed.

                this.cadastro_de_fornecedoresTableAdapter.Fill(this.cadastro_de_produtosDataSet21.Cadastro_de_fornecedores);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.cadastro_de_clientes_Consulta' table. You can move, or remove it, as needed.

                this.cadastro_de_clientes_ConsultaTableAdapter.Fill(this.cadastro_de_produtosDataSet21.cadastro_de_clientes_Consulta);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet21.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter2.Fill(this.cadastro_de_produtosDataSet21.cadastro_de_clientes);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet1.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter1.Fill(this.cadastro_de_produtosDataSet1.cadastro_de_clientes);

                // TODO: This line of code loads data into the 'cadastro_de_produtosDataSet.cadastro_de_clientes' table. You can move, or remove it, as needed.

                this.cadastro_de_clientesTableAdapter.Fill(this.cadastro_de_produtosDataSet.cadastro_de_clientes);

     

     

    Isto nao e conecao nenhuma. Isto e o teu dataset. Tu carregaste ou usaste wizard datasource. Mostra que tu carregaste a tua database no teu projecto. voce deve ter feito alteracoes por isso esta a dar este erros todos.


    Just Be Humble Malange!
    Saturday, March 20, 2010 11:44 PM