Jump to content
nelgaio

Apanhar ID do Utilizador logado

Recommended Posts

nelgaio

Boas :)

O meu Inicio de Sessão dá para 3 utilizadores (aluno, professor e administrador).

Como posso por exemplo ver as notas só daquele aluno que está logado?

Possivelmente terei de apanhar o ID do rapaz, mas não sei como ;)

Share this post


Link to post
Share on other sites
Caça

Quando o utilizador está a fazer login, apanha o seu ID e coloca numa variável publica


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
tiagoamaros

Boas nelgaio,

Primeiro faz um select, que irá buscar o id do utilizador á base de dados através do nome algo deste género:

SELECT id FROM users WHERE name=$user

id = nome do campo do id do utilizador na BD

users = nome da tabela na BD

name = nome da coluna na BD que Guarda os nomes dos utilizadores

$user = nome da variável que contém o nome do utilizador que iniciou a sessão...

Depois para ires buscar mesmo as notas depende de como estás a organizar os dados, se precisares de mais ajuda diz como os estás a organizar.

Abraço,

Share this post


Link to post
Share on other sites
Caça

Boas nelgaio,

Primeiro faz um select, que irá buscar o id do utilizador á base de dados através do nome algo deste género:

SELECT id FROM users WHERE name=$user

id = nome do campo do id do utilizador na BD

users = nome da tabela na BD

name = nome da coluna na BD que Guarda os nomes dos utilizadores

$user = nome da variável que contém o nome do utilizador que iniciou a sessão...

Depois para ires buscar mesmo as notas depende de como estás a organizar os dados, se precisares de mais ajuda diz como os estás a organizar.

Abraço,

Ok, basicamente é isso, mas estamos no quadro VB.NET, não em PHP


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
nelgaio

Boas nelgaio,

Primeiro faz um select, que irá buscar o id do utilizador á base de dados através do nome algo deste género:

SELECT id FROM users WHERE name=$user

id = nome do campo do id do utilizador na BD

users = nome da tabela na BD

name = nome da coluna na BD que Guarda os nomes dos utilizadores

$user = nome da variável que contém o nome do utilizador que iniciou a sessão...

Depois para ires buscar mesmo as notas depende de como estás a organizar os dados, se precisares de mais ajuda diz como os estás a organizar.

Abraço,

Boas, está assim o código:

Dim ole As String = "SELECT ID_Utilizador FROM Utilizadores WHERE Nome=$user"
Dim myConnectionString As String = _
       "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"

A minha tabela Notas tem ID_Nota(chave primária), ID_Utilizador, ID_Disciplina, Classificacao e ID_AnoLect.

Agora queria mostrar na DataGridView só as notas do utilizador que está logado ;)

Share this post


Link to post
Share on other sites
tiagoamaros

Boas Again,

Desculpem, nao tinha reparado nesse pequeno (grande) pormenor...

Não conheço grande coisa de VB.NET, mas deixa-me ver se te consigo ajudar, vê se por acaso isto ajuda http://www.daniweb.com/software-development/vbnet/code/216920

Já agora penso que a tabela notas é desnecessário, já que a classificação  pode ser apenas um campo da tabela disciplina.

Abraço

Share this post


Link to post
Share on other sites
nelgaio

Boas Again,

Desculpem, nao tinha reparado nesse pequeno (grande) pormenor...

Não conheço grande coisa de VB.NET, mas deixa-me ver se te consigo ajudar, vê se por acaso isto ajuda http://www.daniweb.com/software-development/vbnet/code/216920

Já agora penso que a tabela notas é desnecessário, já que a classificação  pode ser apenas um campo da tabela disciplina.

Abraço

A Base de Dados é em Access ;)

Só queria que mostrasse na DataGridView as informações das notas do aluno que está logado.

Não vou mexer agora na Base de Dados, senão vou estragar isto tudo :cheesygrin:

Share this post


Link to post
Share on other sites
Caça

Na tua query só tens de adicionar

WHERE IDALUNO = ID_do_aluno_guardado_na_variavel


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
nelgaio

Na tua query só tens de adicionar

WHERE IDALUNO = ID_do_aluno_guardado_na_variavel

É isto?

Não percebi muito bem ;)

Dim ole As String = "SELECT ID_Utilizador FROM Utilizadores WHERE Nome=$user and ID_Utilizador=$user"
        Dim myConnectionString As String = _
         "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"

Share this post


Link to post
Share on other sites
tiagoamaros

Boas nelgaio...

A resposta do Caça resolveu o teu problema??

Share this post


Link to post
Share on other sites
Caça

É isto?

Não percebi muito bem ;)

Dim ole As String = "SELECT ID_Utilizador FROM Utilizadores WHERE Nome=$user and ID_Utilizador=$user"
        Dim myConnectionString As String = _
         "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"

Não perguntaste isto?

Agora queria mostrar na DataGridView só as notas do utilizador que está logado :)

O que eu te dei, é para colocar na query que te mostra as notas, não na query do login.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
bioshock

Dim query As String = "SELECT IDUtilizador FROM Login WHERE [utilizador] = @utilizador and [senha] = @senha"

Dim command As New OleDbCommand(query, connection)
command.Parameters.Add("@utilizador", OleDbType.VarChar).Value = TextBox1.Text
command.Parameters.Add("@senha", OleDbType.VarChar).Value = TextBox2.Text

connection.Open()

Dim PegaID As Integer
If command.ExecuteScalar > 0 Then
PegaID = command.ExecuteScalar()
MsgBox(PegaID)
End If
connection.Close()

http://wiki.portugal-a-programar.org/dev_net:vb.net:access

Share this post


Link to post
Share on other sites
nelgaio

Dim query As String = "SELECT ID_Utilizador FROM Utilizadores WHERE [username] = @Username and [Password] = @Password"
        Dim myConnectionString As String = _
                "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"
        Dim connection As New OleDbConnection(myConnectionString)
        Dim command As New OleDbCommand(query, connection)
        command.Parameters.Add("@Username", OleDbType.VarChar).Value = login.txtutilizador.Text
        command.Parameters.Add("@Password", OleDbType.VarChar).Value = login.txtpassword.Text

        connection.Open()

        Dim PegaID As Integer
        If command.ExecuteScalar > 0 Then
            PegaID = command.ExecuteScalar()
            MsgBox(PegaID)
        End If
        connection.Close()

Está certo assim? Adaptei à minha BD.

O problema é que o meu listar é só isto:

Me.NotasTableAdapter.Fill(Me.BDDataSet.Notas)

Share this post


Link to post
Share on other sites
bioshock

Se queres apresentar os dados numa DataGridView, vê o link que te dei no post anterior.

Share this post


Link to post
Share on other sites
nelgaio

Se queres apresentar os dados numa DataGridView, vê o link que te dei no post anterior.

Algo deste género? :)

Dim query As String = "SELECT ID_Utilizador FROM Utilizadores WHERE [username] = @Username and [Password] = @Password"
        Dim myConnectionString As String = _
                "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & Application.StartupPath & "\BD.accdb"
        Dim connection As New OleDbConnection(myConnectionString)
        Dim command As New OleDbCommand(query, connection)
        command.Parameters.Add("@Username", OleDbType.VarChar).Value = login.txtutilizador.Text
        command.Parameters.Add("@Password", OleDbType.VarChar).Value = login.txtpassword.Text
        Dim DataAdapter As New OleDbDataAdapter(query, myConnectionString)
        Dim MyData As New DataSet
        DataAdapter.Fill(MyData, "Notas")

        Me.NotasDataGridView.DataSource = MyData.Tables("Notas")
        connection.Open()

        Dim PegaID As Integer
        If command.ExecuteScalar > 0 Then
            PegaID = command.ExecuteScalar()
            MsgBox(PegaID)
        End If
        connection.Close()

Share this post


Link to post
Share on other sites
bioshock

"Notas" ? Mas afinal queres apresentar os campos da tabela Utilizadores ou da tabela Notas?

Se for da 2ª opção terás de fazer outra query (já com o ID que apanhaste).

Share this post


Link to post
Share on other sites
nelgaio

Boas nelgaio...

A resposta do Caça resolveu o teu problema??

Boas :)

Ainda estou a tentar, não percebo muito disto :wallbash:

"Notas" ? Mas afinal queres apresentar os campos da tabela Utilizadores ou da tabela Notas?

Se for da 2ª opção terás de fazer outra query (já com o ID que apanhaste).

Eu quero apresentar as notas só do utilizador que iniciou sessão :)

Talvez não me tenha explicado bem.

Share this post


Link to post
Share on other sites
Caça

Mostra o código que estás a usar para carregar as notas.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
nelgaio

Mostra o código que estás a usar para carregar as notas.

Inserir as notas na aplicação?

Share this post


Link to post
Share on other sites
Caça

Inserir as notas na aplicação?

Carregar.


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.