Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Pedroalves

[Resolvido] Login em C#

Recommended Posts

não estou a conseguir por o login a funcionar

segue-se o codigo

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;




namespace WindowsFormsApplication3
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawString("LOGIN", new Font("Times New Roman", 30), Brushes.Blue, 25, 20);
        }

        private void panel2_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawString("USERNAME", new Font("Times New Roman", 10), Brushes.Blue, 20, 10);
        }

        private void panel3_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawString("PASSWORD", new Font("Times New Roman", 10), Brushes.Blue, 20, 10);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form1 frm = new Form1();
            frm.Show();
            Hide();
        }

        private void button1_Click(object sender, EventArgs e)
        {
   MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString;

myConnectionString = "server=localhost;uid=root;" +
    "pwd=123456;database=gest;";

            try
{
    conn = new MySql.Data.MySqlClient.MySqlConnection();
    conn.ConnectionString = myConnectionString;
    conn.Open();


                string mSQL = "select password from user where username = @NomeUsuario;";

                MySqlCommand cmd = new MySqlCommand(mSQL, conn);

                MySqlDataAdapter da = new MySqlDataAdapter(cmd);

                cmd.Parameters.Add("NomeUsuario", MySqlDbType.VarChar).Value = textBox1.Text;

                cmd.Parameters.Add("senha", MySqlDbType.VarChar).Value = textBox2.Text;
                

                int i = int.Parse(cmd.ExecuteScalar().ToString()); //aqui é onde me da o erro


                if (i < 0)
                {

                    Form3 frm = new Form3();

                    frm.Show();

                    Hide();

                }

                else

                    MessageBox.Show("Usuario ou Senha incorretos");
            
            }


            catch (MySqlException
msqle)
            {
                MessageBox.Show("Erro de acesso ao MySQL : " +
           msqle.Message, "Erro");
            }
  
        }




        private void aBOUTGESTSTOCKSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AboutBox1 frm = new AboutBox1();
            frm.Show();
            Hide();
        }

        private void hELPToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form4 frm = new Form4();
            frm.Show();
            Hide();

        }

        private void sAIRToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void gRAVARToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void rEGISTOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 frm = new Form5();
            frm.Show();
            Hide();
        }
    }

}
alguem me pode ajudar a resolver o problema

Compartilhar este post


Link para o post
Compartilhar em outros sites

o erro esta no primeiro e segundo paramento você coloco NomeUsuario como referencia da variável da query do MySqlCommand que na verdade falto o @ é @NomeUsuario, ja no segundo parâmetro você coloco "senha" sem necessidade, recomendo que siga o modelo abaixo

public class UsuariosLogin
    {
        public int Codigo {get;set;}
        public string Nome {get;set;}
        public string Login {get;set;}
        public string Senha { get; set; }
    }
	
 public class UsuariosLogin
    {
        SqlConexao SQLCon = new SqlConexao();
        public UsuariosLoginDAL()
        {

        }
        public UsuariosLogin LogarUsuario(string login, string senha)  {
            UsuariosLogin objUsuariosLogin = new UsuariosLogin();
         
            try
            {
            SqlCommand cmd = new SqlCommand("SELECT * FROM Usuarios WHERE (Login = @Login) AND (Senha = @Senha)", SQLCon.con);
            cmd.Parameters.Add("@Login", SqlDbType.NVarChar, 100).Value = login;
            cmd.Parameters.Add("@Senha", SqlDbType.NVarChar, 100).Value = senha;
            SqlDataReader reader = cmd.ExecuteReader();
            while (reader.Read())
            {

                objUsuariosLogin.Codigo = reader.GetInt16(0);
                objUsuariosLogin.Nome = reader.GetString(1);
                objUsuariosLogin.Login = reader.GetString(2);
                objUsuariosLogin.Senha = reader.GetString(3);
            }
            reader.Dispose();
            cmd.Dispose();
            }
            catch (Exception)
            {
                
                throw;
            }
      

            return objUsuariosLogin;
        }
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

public class UsuariosLogin

{

public int Codigo {get;set;}

public string Nome {get;set;}

public string Login {get;set;}

public string Senha { get; set; }

}

 

public class UsuariosLogin

{

SqlConexao SQLCon = new SqlConexao();

public UsuariosLoginDAL()

{

 

}

public UsuariosLogin LogarUsuario(string login, string senha) {

UsuariosLogin objUsuariosLogin = new UsuariosLogin();

 

try

{

SqlCommand cmd = new SqlCommand("SELECT * FROM Usuarios WHERE (Login = @Login) AND (Senha = @Senha)", SQLCon.con);

cmd.Parameters.Add("@Login", SqlDbType.NVarChar, 100).Value = login;

cmd.Parameters.Add("@Senha", SqlDbType.NVarChar, 100).Value = senha;

SqlDataReader reader = cmd.ExecuteReader();

while (reader.Read())

{

 

objUsuariosLogin.Codigo = reader.GetInt16(0);

objUsuariosLogin.Nome = reader.GetString(1);

objUsuariosLogin.Login = reader.GetString(2);

objUsuariosLogin.Senha = reader.GetString(3);

}

reader.Dispose();

cmd.Dispose();

}

catch (Exception)

{

 

throw;

}

 

 

return objUsuariosLogin;

}

}

}

este codigo é para sql server e gostaria de saber se funciona no mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não trabalhei com C# e MySql mas acredito que sim... altere o código que o amigo enviou e teste!

 

qq duvida estamos ai.

abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;




namespace WindowsFormsApplication3
{
    
    public partial class Form2 : Form
    {

        //string NomeUsuario ="@NomeUsuario";
        //string senha="@senha";


        public Form2()
        {
            InitializeComponent();
        }
     

        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawString("LOGIN", new Font("Times New Roman", 30), Brushes.Blue, 25, 20);
        }

        private void panel2_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawString("USERNAME", new Font("Times New Roman", 10), Brushes.Blue, 20, 10);
        }

        private void panel3_Paint(object sender, PaintEventArgs e)
        {
            Graphics g = e.Graphics;
            g.DrawString("PASSWORD", new Font("Times New Roman", 10), Brushes.Blue, 20, 10);
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form1 frm = new Form1();
            frm.Show();
            Hide();
        }

        private void button1_Click(object sender, EventArgs e )
        {
           
   MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString; 

myConnectionString = "server=localhost;uid=root;" +"pwd=123456;database=gest;";

            try
{
    conn = new MySql.Data.MySqlClient.MySqlConnection();
    conn.ConnectionString = myConnectionString;
    conn.Open();


                string mSQL = ("select *from user where (username = @NomeUsuario and password=@senha)");

                MySqlCommand cmd = new MySqlCommand(mSQL, conn);

                MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                cmd.Parameters.Add("@NomeUsuario", MySqlDbType.VarChar, 100).Value = textBox1.Text;
                cmd.Parameters.Add("@senha", MySqlDbType.VarChar, 100).Value = textBox2.Text;

               /* MySqlDataReader reader = cmd.ExecuteReader();
                 while(reader.Read())
                 {
               
             }
             reader.Dispose();
             cmd.Dispose();
                */



            int i = (int)cmd.ExecuteScalar();//erro aqui


            if (i > 0)
            {

                Menu frm = new Menu(this);

                frm.Show();

                this.Hide();

            }

            else
            {
                MessageBox.Show("Usuario ou Senha incorretos");
            }
            conn.Close();

            }

            catch (MySqlException
msqle)
            {
                MessageBox.Show("Erro de acesso ao MySQL : " +
           msqle.Message, "Erro");
            }
  
     

        }
        
        private void aBOUTGESTSTOCKSToolStripMenuItem_Click(object sender, EventArgs e)
        {
            AboutBox1 frm = new AboutBox1();
            frm.Show();
            Hide();
        }

        private void hELPToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form4 frm = new Form4();
            frm.Show();
            Hide();

        }

        private void sAIRToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void gRAVARToolStripMenuItem_Click(object sender, EventArgs e)
        {

        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void rEGISTOToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Form5 frm = new Form5();
            frm.Show();
            Hide();
        }
    }

}
não estou a conseguir resolver o problema daquela linha

alguem me ajude

eu uso o mysql

o meu codigo esta quando eu carrego no botao ele liga me a base de dados e faz a verificação do utilizador

eu estou a passar um programa que eu fiz em java para C# mas não estou a conseguir

Compartilhar este post


Link para o post
Compartilhar em outros sites

aqui esta a solucção

               MySql.Data.MySqlClient.MySqlConnection conn;
               string myConnectionString;

               myConnectionString = "server=localhost;uid=root;" + ";database=gest;";

               try
               {
                   conn = new MySql.Data.MySqlClient.MySqlConnection();
                   conn.ConnectionString = myConnectionString;
                   conn.Open();


                   string mSQL = "select count(*)from user where username = @NomeUsuario and password=@senha";

                   MySqlCommand cmd = new MySqlCommand(mSQL, conn);

                   MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                   cmd.Parameters.Add("@NomeUsuario", MySqlDbType.VarChar, 100).Value = textBox1.Text;
                   cmd.Parameters.Add("@senha", MySqlDbType.VarChar, 100).Value = textBox2.Text;




                   int i = int.Parse(cmd.ExecuteScalar().ToString());


                   if (i > 0)
                   {

                       Game frm = new Game();

                       //frm.Show();

                       this.Hide();

                   }

                   else
                   {
                       MessageBox.Show("Usuario ou Senha incorretos");
                   }
                   conn.Close();

               }

               catch (MySqlException
   msqle)
               {
                   MessageBox.Show("Erro de acesso ao MySQL : " +
              msqle.Message, "Erro");
               }

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.