Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Ajuda [Iniciando]


Henrique Neto

Pergunta

Bem estou iniciando em .net e gostaria de realizar uma tela de login e senha catando as informacoes do banco....

Cheguei a esse codigo so que não tenho mais nocao de como é.

:S

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 Projeto
{
    public partial class FPrincipal : Form
    {
       private MySqlConnection mConn;
       private MySqlDataAdapter bdAdapter;
       private DataSet bdDataSet;


        public FPrincipal()
        {
            InitializeComponent();
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Definindo DataSet.....

            bdDataSet = new DataSet(); 

            //Definindo String da Conexao ....

            mConn = new MySqlConnection(" Persist Security Info=False;server=localhost;database=pontes;uid=root;server=localhost;database=pontes;uid=root;pwd=");

            //Abrindo Conexao ....
            try
            {
                mConn.Open();
            }
            catch
            {
                MessageBox.Show("Conexão não realizada.");
            }


            //Testando se a conexao foi realizada....
            if (mConn.State == ConnectionState.Open)
            {
                MySqlCommand commS = new MySqlCommand("select login, senha from user where login = " +textLogin+ " and senha = " +textSenha ,mConn);
                commS.BeginExecuteNonQuery;
            }


        }

       
    }
}

Maior duvida e nessa linha

MySqlCommand commS = new MySqlCommand("select login, senha from user where login = " +textLogin+ " and senha = " +textSenha ,mConn);

commS.BeginExecuteNonQuery;

se a concatenacao está certa ?

e depois disso o que faco para ve se o login e a senha informada estao certas ...

caso seja certa abrir outro form.

caso não de uma mensagem d error.

e esta dando error nessa linha

commS.BeginExecuteNonQuery;

Error 1 Only assignment, call, increment, decrement, and new object expressions can be used as a statement C:\Users\user\Documents\Visual Studio 2008\Projects\Projeto\Projeto\Form1.cs 55 17 Projeto

desde já grato

Editado por Henrique Neto
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

a concatenacao ta ate certa, mas faltou aspa simples:

"select login, senha from user where login = '" + textLogin + "' and senha = '" + textSenha + "'"
e pra ler o retorno, não pode ser com ExecuteNonQuery(), porque o ExecuteNonQuery() não tras retorno. você pode usar um DataReader e pegar atravez do ExecuteReader():
MySqlDataReader rs = commS.ExecuteReader();

if (rs.Read())
{
    //achou o login
}
else
{
    //não achou
}[/code]

Link para o comentário
Compartilhar em outros sites

  • 0

kuroi o codigo ficou desse modo agora....

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 Projeto
{
    public partial class FPrincipal : Form
    {
       private MySqlConnection mConn;
       private MySqlDataAdapter bdAdapter;
       private DataSet bdDataSet;


        public FPrincipal()
        {
            InitializeComponent();
            
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {

        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Definindo DataSet.....

            bdDataSet = new DataSet(); 

            //Definindo String da Conexao ....

            mConn = new MySqlConnection(" Persist Security Info=False;server=localhost;database=pontes;uid=root;server=localhost;database=pontes;uid=root;pwd=");

            //Abrindo Conexao ....
            try
            {
                mConn.Open();
            }
            catch
            {
                MessageBox.Show("Conexão não realizada.");
            }


            //Testando se a conexao foi realizada....
            if (mConn.State == ConnectionState.Open)
            {
                MySqlCommand commS = new MySqlCommand("select login, senha from user where login = '" + textLogin + "' and senha = '" + textSenha + "'");
                MySqlDataReader rs = commS.ExecuteReader();

                if (rs.Read)
                {

                }
                else
                {
                    MessageBox.Show('Tente Novamente / Login ou Senha inválido');
                }
            }
           


        }

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

       

       
    }
}

Ta dando um error nessa linha if (rs.Read)

Error 1 Cannot convert method group 'Read' to non-delegate type 'bool'. Did you intend to invoke the method?

Ai me surge outra duvida, todo form que irei me conectar ao banco eu terei q criar um objeto dataset e um MySqlConnection ?

E para caso o login seja aceito como faria para criar um outro form caso o login fosse aceito seria criando um objeto form ?

Editado por Henrique Neto
Link para o comentário
Compartilhar em outros sites

  • 0
Ta dando um error nessa linha if (rs.Read)

isso ai acho q é porque faltou abrir e fechar os parenteses. assim:

if (rs.Read())
Ai me surge outra duvida, todo form que irei me conectar ao banco eu terei q criar um objeto dataset e um MySqlConnection ?
hum, se eu lembro bem das minhas epocas de c#, se você não quiser abrir a connection a cada formulario, você poderia criar uma propriedade MySqlConnection estatica em uma classe e usar essa propriedade. se não me engano, nem precisa instanciar o objeto, você pode acessar direto pelo nome da classe. se tiver dificuldade nisso, fala ai.
E para caso o login seja aceito como faria para criar um outro form caso o login fosse aceito seria criando um objeto form ?
bom, pra adicionar um form novo no projeto é so entrar no menu Project -> Add Windows Form... pra abri-lo depois do login, o codigo seria esse:
Form2 f = new Form2();
f.Show();[/code]

onde Form2 é o nome do seu formulario.

Link para o comentário
Compartilhar em outros sites

  • 0

essa linha de codigo

MySqlCommand commS = new MySqlCommand("select login, senha from user where login = '" + textLogin + "' and senha = '" + textSenha + "'",mConn);

MySqlDataReader rs = commS.ExecuteReader();

eu tive q colocar esse mconn depois do codigo SQL, sem ele dava error.

porem quando coloco o login e a senha que estao o banco sempre da login e senha invalida não se batem uma com a outra...

e eu coloquei o novo form

if (rs.Read())

{

Form FPrincipal = new Form();

FPrincipal.Show();

}

Editado por Henrique Neto
Link para o comentário
Compartilhar em outros sites

  • 0
eu tive q colocar esse mconn depois do codigo SQL, sem ele dava error.

é verdade, não tinha reparado nisso.

porem quando coloco o login e a senha que estao o banco sempre da login e senha invalida não se batem uma com a outra...

textLogin e textSenha são textboxs??

então faca assim:

MySqlCommand commS = new MySqlCommand("select login, senha from user where login = '" + textLogin.Text + "' and senha = '" + textSenha.Text + "'", mConn);

Link para o comentário
Compartilhar em outros sites

  • 0

consegui parceiro.

GRATO =)

eu posso destruir o primeiro form quando o principal for aberto ?

tipo login e senha primeiro form, form com menu (form principal) ....

depois q o login e senha fosse aceito destruiria o login e senha e deixava o principal aberto

caso ele(fprincipal) fosse fechado a aplicacao terminaria...

Link para o comentário
Compartilhar em outros sites

  • 0

huuum, se não me engano, se você fechar o primero form, a aplicacao toda sera fechada, não??

porque o primero form carregado é considerado o principal.

não sei se teria uma forma mais facil pra resolver isso, mas eu faria a partir da classe ApplicationContext.

mas isso daria trabalho, aqui tem um exemplo, mais o menos (olhe o penultimo post): http://forums.devx.com/archive/index.php/t-56168.html

mas você poderia contornar isso de uma forma mais facil. em vez de destruir o primero form, você o esconderia. tipo assim:

private void Form2_Load(object sender, EventArgs e)
{
    Application.OpenForms["Form1"].Visible = false;
}[/code] onde Form2 é o seu form de menu e Form1 era o form de login. e na hora de fechar o segundo form, você usaria esse codigo:
[code]private void Form2_FormClosed(object sender, FormClosedEventArgs e)
{
    Application.OpenForms["Form1"].Close();
}

assim, ele fecha o form1 e, por consequencia, a aplicacao toda.

EDITADO:

a e não esquece de criar os eventos Load e FormClosed, não é so copiar o codigo.

Editado por kuroi
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...