Usuário com melhor resposta
Passar o conteúdo da caixa de texto "nome_login" do formulário login, para ser usado no Formulário Cliente no botão salvar

Pergunta
-
Boa Tarde pessoal,
Gostaria de uma ajuda, como passar através da variável que recebe o valor nome_login do "FormLogin" (Formulário de Login), quero usá-la na caixa de texto no formulário de clientes.
Explicando melhor: o usuário ao se logar, será passado seu nome (nome_login do FormLogin) para a caixa de texto no FormularioClientes no botão salvar.
Assim toda alteração e edição, será gravada por quem fez esta última alteração/edição, ou seja quem se logou.
Como transfiro o nome do usuario do login para o formulário Clientes (na mesma variável ou em outra) para salvar na caixa de texto do "Clientes"
Obrigado pela ajuda.
Respostas
-
oi amigo!
passei dias sem estar na net, mas já verifiquei teu código e vê as melhoria que fiz:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Ultimo_ID
{
public partial class Login : Form
{String usuario, pwd;
SqlConnection SqlConn = null;
public String StrConn = @"Data Source=DESKTOP-3O98051;Initial Catalog=UltimoID;Integrated Security=True";
public String StrSql = String.Empty;
public bool logado = false;
public String usuario = string.Empty;
public Login()
{
InitializeComponent();
}
private void btn_cancelar_Click(object sender, EventArgs e)
{
Application.Exit();
}
public static class DadosGerais
{
public static string Loginusuario;
}
public void Logar()
{
SqlConn = new SqlConnection(StrConn);
try
{
usuario = txt_usuario.Text;
pwd = txt_senha.Text;DadosGerais.Loginusuario = usuario;
// usuario = usu;
// pgto = txt_pgto.Text;
StrSql = "SELECT COUNT (Id_Usuario) FROM Usuario WHERE Nome_Usuario = @usuario AND Senha_Usuario = @senha";
SqlCommand cmd = new SqlCommand(StrSql, SqlConn);
cmd.Parameters.Add("@usuario",SqlDbType.VarChar).Value = usuario;
cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = pwd;
// cmd.Parameters.Add("@senhapgto", SqlDbType.VarChar).Value = pgto;
SqlConn.Open();
int v = (int)cmd.ExecuteScalar();
if (v > 0)
{
logado = true;
this.Dispose();
}
else
{
MessageBox.Show("Usuário ou Senha não estão Cadastrados!", "Erro!");
logado = false;
}
}
catch
{
MessageBox.Show("Falha na Conexão de Acesso ao Banco de Dados! ", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btn_efetuarlogin_Click(object sender, EventArgs e)
{
Logar();
}
private void txt_senha_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Logar();
}
}
}
}Melhorei só a visibilidade das variáveis e a chamada da classe estática dentro do método Logar();
espero que te ajudou.
- Marcado como Resposta F.oliveirarocha segunda-feira, 13 de agosto de 2018 12:34
Todas as Respostas
-
Olá amigo!
Para passar um valor para outro formulário como no teu caso o formulário Clientes, se ao clicar no botão ele chama diretamente o formulário Clientes, você pode fazer o seguinte:
Primeiro cria uma variável Public no form Clientes exemplo public string nomeUsuario, e ao chamar o form Clientes no botão do login pode fazer o seguinte:
Clientes cliente = new Clientes;
cliente.nomeUsuario = nome_Login; //ou txtNome.text
cliente.Show();
Espero que te serviu de ajuda.
-
Timóteo, boa noite,
obrigado pela sua atenção.
Não se trata de chamar o Formulário Cliente no botão de login.
No formulário Login, ao inserir os dados de Nome (Nome do usuário) e Senha, para logar, eu quero pegar o nome do usuário deste formulário Login (nome_login) e usar nos formulários que ele acessar ao Salvar (Clientes, Fornecedor, etc).
Ao fazer o Login, o usuário acessará o Sistema para fazer algo, inserir ou alterar clientes etc, gostaria que salvasse
o nome deste usuário e a data no formulário que ele acessou, registrando quem fez a edição ou alteração. A data eu já resolvi. O usuário não. Já fiz n tentativas.
Aguardo sua ajuda novamente.
Obrigado.
-
Ok percebi!
Neste caso te sugiro criar uma classe static com um campo public static que vai receber o nome do usuário logado e como a classe static é visível em todo programa você consegue pegar o nome do usuário logado em qualquer formulário. Tipo assim:
public static class DadosGeral
{
public static string nomeUsuario;
}no teu formulário de login no código do teu botão acrescenta isto:
DadosGeral.nomeUsuario = nome_login;
feito isto pronto! em todos teus formulário será visível o campo nomeUsuario da classe static com valor passado basta atribuir a qualquer variável este valor já está ex: frmCliente.text = DadosGeral.nomeUsuario;.
Espero que isso te ajudou.
- Editado Timóteo Nkawa terça-feira, 7 de agosto de 2018 10:31 Correção
-
Timóteo, boa tarde,
Vc entendeu. É isso mesmo que eu necessito.
Fiz o código, porém a variável não está recebendo o valor da caixa de texto.
Continuo salvando sem o nome do usuário.
Não sei o que deve ser.
Obrigado pela ajuda.
Att.
Flávio Rocha.
-
Timóteo, boa tarde,
Vai abaixo o código do meu formulário de Login.
Veja se consegue visualizar o problema. A variável do usuário continua vazia e não consigo passar o nome do login,
para ela. Veja abaixo. Abraços.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Ultimo_ID
{
public partial class Login : Form
{
SqlConnection SqlConn = null;
public String StrConn = @"Data Source=DESKTOP-3O98051;Initial Catalog=UltimoID;Integrated Security=True";
public String StrSql = String.Empty;
public bool logado = false;
public String usuario = string.Empty;
public Login()
{
InitializeComponent();
}
private void btn_cancelar_Click(object sender, EventArgs e)
{
Application.Exit();
}
public static class DadosGerais
{
public static string Loginusuario;
}
public void Logar()
{
SqlConn = new SqlConnection(StrConn);
String usuario, pwd;
try
{
usuario = txt_usuario.Text;
pwd = txt_senha.Text;
// usuario = usu;
// pgto = txt_pgto.Text;
StrSql = "SELECT COUNT (Id_Usuario) FROM Usuario WHERE Nome_Usuario = @usuario AND Senha_Usuario = @senha";
SqlCommand cmd = new SqlCommand(StrSql, SqlConn);
cmd.Parameters.Add("@usuario",SqlDbType.VarChar).Value = usuario;
cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = pwd;
// cmd.Parameters.Add("@senhapgto", SqlDbType.VarChar).Value = pgto;
SqlConn.Open();
int v = (int)cmd.ExecuteScalar();
if (v > 0)
{
logado = true;
this.Dispose();
}
else
{
MessageBox.Show("Usuário ou Senha não estão Cadastrados!", "Erro!");
logado = false;
}
}
catch
{
MessageBox.Show("Falha na Conexão de Acesso ao Banco de Dados! ", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btn_efetuarlogin_Click(object sender, EventArgs e)
{
Logar();
DadosGerais.Loginusuario = usuario;
}
private void txt_senha_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Logar();
}
}
}
}
-
oi amigo!
passei dias sem estar na net, mas já verifiquei teu código e vê as melhoria que fiz:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace Ultimo_ID
{
public partial class Login : Form
{String usuario, pwd;
SqlConnection SqlConn = null;
public String StrConn = @"Data Source=DESKTOP-3O98051;Initial Catalog=UltimoID;Integrated Security=True";
public String StrSql = String.Empty;
public bool logado = false;
public String usuario = string.Empty;
public Login()
{
InitializeComponent();
}
private void btn_cancelar_Click(object sender, EventArgs e)
{
Application.Exit();
}
public static class DadosGerais
{
public static string Loginusuario;
}
public void Logar()
{
SqlConn = new SqlConnection(StrConn);
try
{
usuario = txt_usuario.Text;
pwd = txt_senha.Text;DadosGerais.Loginusuario = usuario;
// usuario = usu;
// pgto = txt_pgto.Text;
StrSql = "SELECT COUNT (Id_Usuario) FROM Usuario WHERE Nome_Usuario = @usuario AND Senha_Usuario = @senha";
SqlCommand cmd = new SqlCommand(StrSql, SqlConn);
cmd.Parameters.Add("@usuario",SqlDbType.VarChar).Value = usuario;
cmd.Parameters.Add("@senha", SqlDbType.VarChar).Value = pwd;
// cmd.Parameters.Add("@senhapgto", SqlDbType.VarChar).Value = pgto;
SqlConn.Open();
int v = (int)cmd.ExecuteScalar();
if (v > 0)
{
logado = true;
this.Dispose();
}
else
{
MessageBox.Show("Usuário ou Senha não estão Cadastrados!", "Erro!");
logado = false;
}
}
catch
{
MessageBox.Show("Falha na Conexão de Acesso ao Banco de Dados! ", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void btn_efetuarlogin_Click(object sender, EventArgs e)
{
Logar();
}
private void txt_senha_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
Logar();
}
}
}
}Melhorei só a visibilidade das variáveis e a chamada da classe estática dentro do método Logar();
espero que te ajudou.
- Marcado como Resposta F.oliveirarocha segunda-feira, 13 de agosto de 2018 12:34
-