• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

yekxmerr

[Dúvida] Ajuda a criar Login em VB Studio 2005

17 mensagens neste tópico

Boas, estou a necessitar de ajuda para fazer um login em Visual Studio 2005 ( Vb.net ). Fiz uma pesquisa no forum, e encontrei um código:

http://www.portugal-a-programar.pt/index.php?showtopic=9744

Mas não consegui decifrar, muito bem o "OrigensDE" , também penso que este código seja de VB6 ou anterior.

A minha base de dados está feita em SQL, porque a minha aplicação é cliente-servidor.

Agradecia a ajuda !

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E o que já tens feito ?

Basicamente a implementação de um login é a confirmação numa base de dados se um utilizador/password indicados correspondem a informação guardada.

Assim, se tiveres no SQL uma tabela de utilizadores, onde esteja o login/password, só tens de fazer um ExecuteScalar() como uma query e saber se é válido ou não.

O comando Transact SQL é algo do género:

"SELECT COUNT(*) FROM TabelaUtilizadores WHERE [login] = '" & Me.txtUtilizador.Text & "' AND [password] = '" & Me.txtPassword.Text & "'"

Se o resultado for 1 no ExecuteScalar() é porque o login/pass é válido!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mt obrigado, eu tinha pensado nisso, mas não sabia o codigo para meter a query.

Envio o valor das txt para uma variavel, dps if variavel = "username" then inicio.show ( por exemplo ) else popupbox com a mensagem errada ;)

Muito obrigado

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não estou a conseguir, eu não sou grande expert. Começei a dar VB.net este ano. Eu sei como o fazer, não sei é o código para fazer. Que codigo preciso para declarar o sql ? Não tenho também de declarar a connection string da DB no form load ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Neste momento tenho o seguinte código:

 

  Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim myConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BaseDados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

        Dim SQL As String = "SELECT Username and Password FROM Login WHERE [username] = '" & Me.txt_username.Text & "' AND [password] = '" & Me.txt_password.Text & "'"
        Dim connection As New SqlConnection(myConnectionString)
        Dim command As New SqlCommand(SQL, connection)

        Try
            connection.Open()
        Catch myerror As SqlException
            MessageBox.Show("Erro a conectar a base de dados: " & myerror.Message)
        End Try

        Dim myAdapter As New SqlDataAdapter
        Dim myCommand As New SqlCommand()
        myCommand.Connection = connection
        myCommand.CommandText = SQL
        'start query
        myAdapter.SelectCommand = myCommand
        Dim myData As SqlDataReader
        myData = myCommand.ExecuteReader

        'see if user exits.
        If myData.HasRows = 0 Then
            MessageBox.Show("Detalhes de Login Inválidos", "Erro de Login", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Else
            Inicio.Show()
            Me.Visible = False
        End If

E dá-me erro no: myData = myCommand.ExecuteReader e a mensagem de erro: Incorrect syntax near the keyword 'and'.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Altera o comando SQL para

        Dim SQL As String = "SELECT [username], [Password] FROM Login WHERE [username] = '" & Me.txt_username.Text & "' AND [password] = '" &

Mas não leste o que te mostrei pois não ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Li, mas ainda não terminei. Tenho estado a ler outros tópicos desse blog, contem informação muito útil.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, é que se tivesses lido não fazias o código dessa forma!

Para que estás a usar um SqlDataAdapter ? Vais ligar essa informação a alguma coisa.

Repara numa coisa, por o blog ser meu eu não me interessa se gostam ou não, mas só não quero que o pessoal faça as coisas por fazer e pior ainda, faça mal. Só isso ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Funcionou. Muito obrigado pela tua ajuda. Falta-me muitas bases ainda porque não aprofundei o Vb.net ainda, só aprendi VB6 e não dei conteúdos muito avancados. Li os links que me deste, e também pesquisei alguns posts neste fórum e noutros, e vi código. Depois com os tutoriais consegui perceber o que é que as coisas faziam.

Sem incomodar muito, queria só te perguntar mais uma questão.Tenho um formulário aberto, que tem uma listbox com valores, e ao lado tenho um botão para ir para um outro formulário que adiciona registos referentes há listbox. O que pretendo fazer é, quando fecho o formulário, a list box actualize. Tenho mais ou menos a ideia como isso se faz, mas corrige-me se estou em erro. Faço o registo no forumário, quando fecho o formulário, faço um fill ao data set. Depois na list box adiciono uma linha de código que faz update ao data set. Mas isto não está a funcionar, sei que posso fazer isto com um SQLtrigger, mas os meus profs disseram que isto era apenas 2 linhas de código que era muito simples.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O código final ficou assim:

        Dim myConnectionString As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\BaseDados.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True"

        Dim SQL As String = "SELECT [username], [Password] FROM Login WHERE [username] = '" & Me.txt_username.Text & "' AND [password] = '" & Me.txt_password.Text & "'"
        Dim connection As New SqlConnection(myConnectionString)
        Dim command As New SqlCommand(SQL, connection)

        Try
            connection.Open()
        Catch myerror As SqlException
            MessageBox.Show("Erro a conectar a base de dados: " & myerror.Message)
        End Try

        Dim reader As SqlDataReader = command.ExecuteReader()

        If reader.HasRows = 0 Then
            MessageBox.Show("Detalhes de Login Inválidos", "Erro de Login", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Else
            Inicio.Show()
            Me.Visible = False
        End If

Acho que está mais correcto assim.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está a funcionar muito bem. Consegues me responder á questão que coloquei. E olha, isto é uma aplicação cliente - servidor, é um projecto PAP para a escola. Neste momento estou a trabalhar localmente com a base dados, mas quando for para ligar ao servidor, basta alterar a data source e meter o ip da maquina, que isto actualiza tudo.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, tenho uma maquina virtual com Window Server 2003. Criei o domínio em WINS, instalei o Microsoft SQL Server 2005 Express Edition, e o SQL Server Magement Studio Express. Vou ler esse tutorial da connection string, e no fim do programa passo para la a base de dados. Obrigado pela ajuda

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora