You can create a column in your database of type boolean
to when it is logged in.
Adding the table:
ALTER TABLE tabela_usuarios ADD 'logado' boolean;
To put the boolean as true
when opening the form, you can use the Form_Load()
event like this:
private void Form1_Load(object sender, EventArgs e)
{
if (checklogado())
{
string comando = "UPDATE tabela_usuarios SET logado=1 WHERE usuario=@Usuario";
var cmd = new MySqlCommand(comando, connection); //connection é a string da conexão.
cmd.Parameters.AddWithValue("@Usuario", usuario); //usuario seria o nome de usuário da pessoa logada.
cmd.ExecuteScalar();
}
else
{
MessageBox.Show("Você já está logado em outra máquina!", "Erro");
Environment.Exit(0);
}
}
bool checklogado()
{
string comando = "SELECT logado FROM tabela_usuarios WHERE usuario=@Usuario";
var cmd = new MySqlCommand(comando, connection);
cmd.Parameters.AddWithValue("@Usuario", usuario);
bool returno = Convert.ToBoolean(cmd.ExecuteScalar());
return retorno;
}
To put the boolean as false
when closing the form, you can use the Form_FormClosing()
event this way:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
string comando = "UPDATE tabela_usuarios SET logado=0 WHERE usuario=@Usuario";
var cmd = new MySqlCommand(comando, connection); //connection é a string da conexão.
cmd.Parameters.AddWithValue("@Usuario", usuario); //usuario seria o nome de usuário da pessoa logada.
cmd.ExecuteScalar();
}