Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fantasticleague

Projecto FantasticLeague

Mensagens Recomendadas

fantasticleague

Boa Tarde

Neste momento estou a realizar a minha PAP, vou passar desde já a explicar o objectivo da PAP e as dúvidas que tenho.

A PAP consiste em criar uma página de registo, login, após isso o utilizador cria 1 sua equipa, depois escolhe os jogadores para a sua equipa, aí é que tenho algumas dúvidas...

Apresento a lista de jogadores com uma DataGridView, e apartir daí queria que os utilizadores comprassem os jogadores, sei que é através do Select da Grid, mas não sei como, será que alguem me pode ajudar?

E o login, só entra se os dados estiverem na BD, mas ao entrar na conta, aquilo não guarda os dados pessoais nem nada, tipo, ao entrar na própria conta ir logo para o Plantel desse utilizador, e já agora, após comprar os jogadores, é descontado dinheiro do orçamento, como faço isso também.

Cumps e Obrigado

Se precisarem de mais alguma informação avisem sff

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

Apresento a lista de jogadores com uma DataGridView, e apartir daí queria que os utilizadores comprassem os jogadores, sei que é através do Select da Grid, mas não sei como, será que alguem me pode ajudar?

consegue isso com o evento «CellMouseClick» do Datagridviem, provavelmente terá que ter uma tabela auxiliar para fazer referencia ao utilizador e jogador, para depois filtrar a consulta pelo id do utilizador. é idêntico a actualizar dados utilizando o datagrid para visualizar.

veja aqui um exemplo em basedados acess.

http://www.portugal-a-programar.pt/topic/59934-update-sql/

ps: deveria ter colocado o seu post em vb.net

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

Boas

E o login, por exemplo como faço para fazer login e ao fazer login passar a informação do utilizador para os restantes forms.

Tipo, 1 utilizador faz login, e ficar no perfil dele, ja tive a pesquisar e não encontro nada.

Acho que é a declarar variaveis no puublic não é?

será que me pode ajudar com isso?

Cumps

PS: Vou ver o teu link acao, cumps bgd

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

sim tem que usar variáveis publicas no modulo, Public VariavelPublica as tipoVariavel; ou então usar classes.

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

Valá pessoal , preciso mesmo de ajuda, o login já procurei horas e horas e não encontro nada de concreto, quando ao update de um "user" da grid view, n entendi mto bem o link que me puseram aqui,vou explicar exactamente o que quero fazer.

1 - Form de Registo(já criado)

2- Form de Login( que guarde as informações da conta nos outros forms)

3 - criar equipa( "insert" já criado)

4- escolher os jogadores ( com uma data grid view, ao carregar na linha do jogador que quero comprar, isto ir para um form de compra, onde manda para la os dados, depois com 1 botão para adicionar o jogador á equipa do utilizador logado, através do ID do user)

E depois vai ter mais funcionalidades, tais como o Ranking de pontuações, etc, mas isso penso que é simples.

o que me está a dar problemas é mesmo o login

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

no form login eu faria +- assim:

1. select à basedados a verificar se o « username » ou username e pass existem na basedados.

2. se não existem sai do sub para nova tentativa, se existem então grava o username numa variável publica e de seguiga redimensiona para o form ex: jogadores,(formjogadores.show) e no evento load do form jogadores carregar todas as informações para esse username.

que seria assim: "select * from jogadores Where username = variavelPublica.

tente fazer alguma coisa e amostre código.

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

Boas

esta tarde vou meter mãos á obra,só 1 coisa como faço isso para gravar o username numa variavél publica?

o que tenho de declarar?

é que apartir do login ficar a funcionar, o resto é mais simples penso.

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

um exemplo de pesquisar com basedados acess, se for diferente a basedados é so alterar a ligação.

Private Sub cmdPesquisarEditar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdPesquisarEditar.Click
    Call LimparDados()
    Dim queryPesqUltimoRelAgua As String
    Dim ConnectPesqUltimoRelAgua As New OleDbConnection("Provider = Microsoft.ACE.OLEDB.12.0;Data Source=D:\BaseDados\GestaoConsumiveis.accdb;Jet OLEDB:Database Password= " & vCodDB & ";")
    queryPesqUltimoRelAgua = "SELECT * FROM Agua WHERE IDAgua = (select max(IDAgua) from Agua); "
    Dim DAdapterPesqUltimoRelAgua As New OleDbDataAdapter(queryPesqUltimoRelAgua, ConnectPesqUltimoRelAgua)
    Dim MyDataPesqUltimoRelAgua As New DataSet
    DAdapterPesqUltimoRelAgua.Fill(MyDataPesqUltimoRelAgua, "Agua")
    vPesqUltimoRelAgua = MyDataPesqUltimoRelAgua.Tables("Agua").Rows.Count()
    Try
	    If vPesqUltimoRelAgua > 0 Then
		    vcodIDAgua = MyDataPesqUltimoRelAgua.Tables("Agua").Rows(0).Item(0)
		    txtContagemAgua.Text = MyDataPesqUltimoRelAgua.Tables("Agua").Rows(0).Item(1)
		    vContagemAguaRegAgua = MyDataPesqUltimoRelAgua.Tables("Agua").Rows(0).Item(1)
		    lblConsumoAgua.Text = MyDataPesqUltimoRelAgua.Tables("Agua").Rows(0).Item(2)
		    lblDataHoraRegAgua.Text = MyDataPesqUltimoRelAgua.Tables("Agua").Rows(0).Item(3)
		    cmdPesquisarEditar.Visible = False
		    cmdGravar.Visible = False
		    ToolStripButton1.Enabled = False
		    cmdActualizar.Visible = True
		    vInclusaoRegAgua = False
	    End If
    Catch ex As Exception
	    MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)
    End Try
    DAdapterPesqUltimoRelAgua = Nothing
    ConnectPesqUltimoRelAgua.Close()
    ConnectPesqUltimoRelAgua = Nothing
   End Sub

se verificar aqui:

vcodIDAgua = MyDataPesqUltimoRelAgua.Tables("Agua").Rows(0).Item(0)

estou a passar o valor codId para a variável

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague
Imports System.Data.OleDb

Imports System.Data

Imports System.Data.Odbc

Imports System.Data.DataTable

Module login

Public variavel As String

End Module

Public Class frmlogin

Dim CN As New OleDbConnection()

Dim DA As New OleDbDataAdapter()

Dim DS As New DataSet()

Dim tables As DataTableCollection = DS.Tables

Public dr As OleDbDataReader

Private Sub frmlogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'TODO: This line of code loads data into the 'PapDataSet.Jogadores' table. You can move, or remove it, as needed.

Me.JogadoresTableAdapter.Fill(Me.PapDataSet.Jogadores)

'TODO: This line of code loads data into the 'PapDataSet.Conta' table. You can move, or remove it, as needed.

Me.ContaTableAdapter.Fill(Me.PapDataSet.Conta)

login.variavel = 1

CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\PAP\pap.mdb"

CN.Open()

DA = New OleDbDataAdapter("SELECT * FROM [conta]", CN)

DA.Fill(DS, "conta")

CN.Close()

End Sub

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles utilizadortextbox.TextChanged

End Sub

Private Sub TextBox1_TextChanged_1(ByVal sender As System.Object, ByVal e As System.EventArgs)

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim strSenha As String = Me.passwordtextbox.Text

Dim cont As Integer

CN.Open()

Dim str As String

str = "SELECT * from conta where (Utilizador= '" & utilizadortextbox.Text & "' and Password= '" & passwordtextbox.Text & "')"

Dim cmd As OleDbCommand = New OleDbCommand(str, CN)

dr = cmd.ExecuteReader

While dr.Read

cont = cont + 1

End While

If cont = 0 Then

MsgBox("Este utilizador ou esta password estão errados")

utilizadortextbox.Focus()

Else

MsgBox("Bem Vindo/a " & utilizadortextbox.Text)

Me.Hide()

criar_equipa.Show()

End If

CN.Close()

esse é o meu form do login, vejam se a variavel publica está bem declarada...

PS: como meto o codigo como voces metem aqui? cumps

Editado por fantasticleague

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

Quanto ás variaveis publicas, já consigo meter:

CLASS

Public Class Class1
Public Sub user()
 login.user = ("")
End Sub
Public Sub pass()
 login.pass = ("")
End Sub
End Class

MODULO

Public user As String
Public pass As String

BOTAO em carrego para aparecer o resultado num msg box.

Dim user As New Class1
 user.user()
 MessageBox.Show(" O site é : " & login.user, "Resposta", MessageBoxButtons.OK)

o codigo que eu aki tenho faz com que os valores que defini No Class, apareçam em qualquer form, mas não é isto que eu quero fazer, eu quero que apareça o que escrevi na textbox do login, é mesmo necessário criar Class para fazer, o que escrevo No Nome de User, aparecer numa Label em outro form..

CUmps

Editado por fantasticleague

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

não, não é necessário classes, conforme tu tinhas no inicio resolve, embora eu adicionasse um modulo ao projecto e colocasse lá a variável.

para verificares se funciona se tem o valor desejado é so colocares um breakpoints na linha aonde adicionaste o valor á variável e outro na linha seguinte, correr o programa que ele para lá e depois passar com o rato emcima da variável e F5 para continuar a correr o programa.

no form login não necessitas de carregar os jogadores, isso tem que ser carregado no form aonde os jogadores são necessários aqui népia.

em meu ver o jogador que efectua o login deveria ser direcionado para um form principal aonde carregasse todo o seu perfil, exemplo: senão tem equipa mostrar o botão de escolher a equipa, etc, se já tem equipa mostrar logo para poder jogar ou alterar a equipa.

penso que conforme está direcionar apenas para criarequipa ou efectuar o registo, não será a melhor opção. o registo até deveria ser uma opção no login, ter lá um botão para quem não tem registo efectuar, para depois fazer o login.

para o valor aparecer na label é so fazer:

nomeLabel.text = NomevariavelPublica

novos post será melhor colocar na secção vb.net

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

Porque não está a dar? :S

Module login
Public user As String
End Module

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

 Dim cont As Integer
 CN.Open()
 Dim str As String
 str = "SELECT * from conta where (Utilizador= '" & utilizadortextbox.Text & "' and Password= '" & passwordtextbox.Text & "')"
 Dim cmd As OleDbCommand = New OleDbCommand(str, CN)
 dr = cmd.ExecuteReader
 While dr.Read
	 cont = cont + 1
 End While
 If cont = 0 Then
	 MsgBox("Este utilizador ou esta password estão errados")
	 utilizadortextbox.Focus()
 Else
	 MsgBox("Bem Vindo/a " & utilizadortextbox.Text)
	 user = utilizadortextbox.Text
	 Me.Hide()
	 Escolher_jogadores.Show()
 End If
 CN.Close()

End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
 Label1.Text = user
End Sub
End Class

EDIT: já consegui meter a funcionar, a aparecer noutro form numa label o que escrevi na text box do user, eu estava a meter o "Label1.Text = user" na label :confused: , em vez de ser no form load do escolher jogadores.

PS: acao não ligues ás ligações e para onde vai os botoes, isso vai ser tudo remodulado depois, como meto a aparecer o perfil do user que faz login? e como meto caso ele tenha equipa ir para o plantel e caso não tenha ir para o form Escolher Jogadores?

e caso tenha tempo se quiser fazer e chat, já estive a ver, este component Microsoft Winsock Control( vi aqui num post

https://www.portugal-a-programar.pt/topic/43103-criar-chat/

), no VB10 como faço? n tem esse component :S

E muito obrigado, e desculpa a noobalhice :P

Cumps

Editado por fantasticleague

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

como meto a aparecer o perfil do user que faz login? e como meto caso ele tenha equipa ir para o plantel

não sei a sua definição de perfil, mas seja perfil ou plantel será feita com uma consulta à basedados e filtrado pelo campo user.

para conseguir estes dados terá que ter tabelas relacionadas.

e caso não tenha ir para o form Escolher Jogadores?

isto é feito na consulta à basedados, seguindo o exemplo do post nº9 veja:

vPesqUltimoRelAgua = MyDataPesqUltimoRelAgua.Tables("Agua").Rows.Count()
		Try
				If vPesqUltimoRelAgua > 0 Then

aqui estamos a verificar se existem registos , mas poderiamos ter feito assim :

If MyDataPesqUltimoRelAgua.Tables("Agua").Rows.Count() > 0 Then 'se tem registo
	  Me.grdView.DataSource = MyDataPesqUltimoRelAgua.Tables("Agua")
	  'carrega o planter
Else
	 FormJogadores.Show
	 'ou então colocar o botão visivel «cmdAdicionarJogadores.Visible = true» isto significa que o botao estaria não visivel
End If

consulte também a pagina WiKi que tem bons exemplos

http://wiki.portugal-a-programar.pt/tag:vbnet?do=showtag&tag=vbnet

e caso tenha tempo se quiser fazer e chat, já estive a ver, este component Microsoft Winsock Control( vi aqui num post http://www.portugal-a-programar.pt/topic/43103-criar-chat/), no VB10 como faço? n tem esse component :S

referente a isto coloque post em vb.net

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

como faço a consulta e em que sitio?

e a seguir, o que é isto "vPesqUltimoRelAgua" é o nome da grid view?

AS tabelas que tenho são:

Conta - Tabela do Login(users)

Jogadores - Tabela dos jogadores

Equipas - Tabela das equipas criadas pelos users

e a Tabela Relações.

A tabela relaçoes tem os campos Utilizador e Equipa, que liga á equipa das Tabelas "Jogadores" e "Equipas" e o Utilizador liga á tabela conta.

estão bem feitas as relações?

isto é feito na consulta à basedados, seguindo o exemplo do post nº9 veja:

Qual é o post 9?

cumps

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

como faço a consulta e em que sitio?

a consulta deve ser feita como fizeste no login , o sitio deves ser tu a decidires mas talvez no evento load do form

e a seguir, o que é isto "vPesqUltimoRelAgua" é o nome da grid view?

é uma variável para obter a quantidade de registo, para poder gerir a informação se tenho registos ou não.

AS tabelas que tenho são:

Conta - Tabela do Login(users)

Jogadores - Tabela dos jogadores

Equipas - Tabela das equipas criadas pelos users

e a Tabela Relações.

tabela relação que eu saiba não existem, o que existe é uma tela aonde se gere as relações de todas as tabelas.

sugiro que leia os seguintes links, ou faça F1 na basedados access.

http://support.microsoft.com/kb/304466/PT

http://office.microsoft.com/pt-br/access-help/criar-editar-ou-excluir-uma-relacao-HA010072597.aspx

http://office.microsoft.com/pt-br/access-help/guia-para-relacoes-de-tabelas-HA010120534.aspx

Qual é o post 9?

este é o 17 o nove sera por aí mais acima.

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

è esse o codigo para selecionar?

e como faço para selecionar apenas os jogadores que não teem equipa? e para selecionar os jogadores da equipa do user que fizer login.

Private Sub frmlogin_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'TODO: This line of code loads data into the 'PapDataSet.Conta' table. You can move, or remove it, as needed.
    Me.ContaTableAdapter.Fill(Me.PapDataSet.Conta)
    CN.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\PAP\pap.mdb"
    CN.Open()
    DA = New OleDbDataAdapter("SELECT * FROM [conta]", CN)
    DA.Fill(DS, "conta")
    CN.Close()

AS relações estão bem feitas?

screenhunter15apr231108.jpg

Agora no form do login e do registo está-me a dar erro, porque não estou a usar os campos que criei para fazer a relação:

screenhunter15apr231107.jpg

preciso disto feito até dia 4 de Maio :S eu percebia disto, mas tive 1 ano sem mexer nisto ui uii :S

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

a tabela conta e jogadores não necessita o campo equipa.

a tabela jogadores não tem chave primaria.

deve ter mais uma tabela que é aonde coloca/compra os jogadores, essa tabela terá que ter a chave estrangeira da tabela equipas e jogadores.

é aqui que relaciona os jogadores com cada equipa.

a tabela jogadores deve ter um campo sim/não para indicar se os jogadores fazem parte de uma equipa.

preciso disto feito até dia 4 de Maio :S eu percebia disto, mas tive 1 ano sem mexer nisto ui uii :S

se tem até esta data vai ter muitas dificuldades em terminar a sua PAP.

sugiro que coloque questões na secção vb.net para ser mais pessoal a judar.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

As tabelas conta e jogadores não precisam de campo equipa?como relaciono depois as tabelas, e a tabela jogadores tem de ter chave primaria?

A tabela da compra dos jogadores tambem tem de estar relacionada com a conta, para saber a que user a equipa pertence.

E na tabela jogadores o campo Equipa não é que melhor que o campo Sim/Nao?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

analisando melhor também dá assim, mas tem que gerir os jogadores com o campo equipa. (compra, venda, sem equipa, etc).

retire apenas o campo equipa na tabela conta. que penso que está a mais.

cumps

acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

e como faço as relações?

ligo que tabelas e que campos?

e como meto chave estrangeira?

PS: Penso que consigo até dia 4, fazer as relações, depois penso que é relativamente simples aquilo de caso tenha equipa ir para plantel e caso não tenho ir para o escolher equipa, depois é usar os dados da view no form comprar jogadores...

E tenho de te agradecer imenso, eu sabia disto, mas 1 ano sem mexer nisto :S

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

deixa ficar conforme colocaste na imagem com a relações, retira apenas o campo equipa da tabela conta.

ps: para fazer as relações é só colocar o rato emcima do campo com chave primaria e arrastar para o campo chave estrangeira, marcar a integridade referencial e propagar a actualização dos campos, atenção que você tem preenchido o campo equipa da tabela jogadores e não tem na tabela equipa, tem que rectificar para conseguir colocar as relações.

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fantasticleague

eu não tenho nenhum campo com chave estrangeira, como se mete chave estrangeira?

tenho preenchido o campo equipa da tabela jogadores?

e a integridade referencial que é?

as relações neste momento estão assim:

screenhunter15apr240916.jpg

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

boas

você tem que relacionar as tabelas 1 para muitos. já lhe indiquei no post anterior como fazer.

as suas relações estão bem, só não dá para ver se estão relacionada 1 para muitos,

chave estrangeira é o nome que se dá ao campo relacionado que não é chave primária

exemplo: chave primaria campo numeração automática liga a um campo de outra tabela numérico, o campo chave primário tem que ser idêntico, numérico com numérico, texto com texto.

uma boa pratica para relacionar as tabelas é dar o mesmo nome da chave primaria e normalmente é o codId, que na sua situação não pode ser porque a sua chave primaria não é o campo codId.

e a integridade referencial que é?

verifique post anterior com links da Microsoft, post nº17 que tem a explicação. É necessário ler e glogar .

tabela jogadores continua sem chave primária, para colocar a chave primária, abra a tabela em modo vista de extrutura e lado esquerdo do campo, rato lado drt e colocar a chave.

edit: já vi na secção net, e está correcto, só que ainda não retirou o campo equipa da tabela conta.

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação 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

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.