fantasticleague Posted May 28, 2013 at 08:06 AM Report #509341 Posted May 28, 2013 at 08:06 AM Boas Eu tenho um sistema de login em que quando se faz login, isso vai seleccionar os dados do user que faz login atraves do codigo EquipasBindingSource.Filter = "Utilizador = '" & utilizadortextbox.Text & "'" porque é que quando eu arrasto a textbox do data source, por exemplo do campo orçamento isso vai sempre buscar o 1º registo da tabela em vez de ir buscar do user que faz login.
Leudassdf Posted May 28, 2013 at 09:32 PM Report #509491 Posted May 28, 2013 at 09:32 PM Boas Eu tenho um sistema de login em que quando se faz login, isso vai seleccionar os dados do user que faz login atraves do codigo EquipasBindingSource.Filter = "Utilizador = '" & utilizadortextbox.Text & "'" porque é que quando eu arrasto a textbox do data source, por exemplo do campo orçamento isso vai sempre buscar o 1º registo da tabela em vez de ir buscar do user que faz login. Seria útil algum código para se tentar perceber o teu problema! Cumprimentos
fantasticleague Posted May 29, 2013 at 10:44 AM Author Report #509563 Posted May 29, 2013 at 10:44 AM Boas esse código que aí meti é quando de carrega no botão login, e vai buscar o dados do user que fez login, quando puxasse uma textbox do data source, não devia autómáticamente ir buscar o orçamento do user que fez login? cumps
Leudassdf Posted May 29, 2013 at 03:12 PM Report #509603 Posted May 29, 2013 at 03:12 PM Boas esse código que aí meti é quando de carrega no botão login, e vai buscar o dados do user que fez login, quando puxasse uma textbox do data source, não devia autómáticamente ir buscar o orçamento do user que fez login? cumps supostamente sim. Mas estás a tentar colocar os dados do utilizador que entrou onde? é num datalist,gridview ou um desses objectos? Se sim tenta fazer: nomedoteuobjecto(formview,datalist...).databind(). o databind pedi para atualizar os dados naquele objecto. porque tu pedes ao datasource para filtrar mas depois tens que pedir ao teu objecto para o voltar a carregar. Penso que é isso. Vê e depois diz alguma coisa. Cumprimentos
fantasticleague Posted May 29, 2013 at 03:49 PM Author Report #509614 Posted May 29, 2013 at 03:49 PM (edited) esqueci-me de referir uma coisa importantissima :S A tabela do login e a tabela do campo orçamento são tabelas diferentes, já me disseram que é daí o problema 😛 mesmo assim obrigado e peço desculpa n ter referido tudo lol edit: mesmo assim continuo sem conseguir meter a funcionar Edited May 29, 2013 at 04:48 PM by fantasticleague
Leudassdf Posted May 29, 2013 at 06:26 PM Report #509643 Posted May 29, 2013 at 06:26 PM esqueci-me de referir uma coisa importantissima :S A tabela do login e a tabela do campo orçamento são tabelas diferentes, já me disseram que é daí o problema 😛 mesmo assim obrigado e peço desculpa n ter referido tudo lol edit: mesmo assim continuo sem conseguir meter a funcionar não há problema. antes de mais tens que postar algum código e dizeres como está estruturada a tua tabela. E tens tambem que dizer o meu objectivo é mostrar isto e aquilo... O que é que desejas em concreto? quais sao as tuas querys para ires buscar os dados a BD? Mostra algum código para entender o que estas a tentar fazer.
fantasticleague Posted May 30, 2013 at 01:28 PM Author Report #509796 Posted May 30, 2013 at 01:28 PM Boas portanto vou meter aqui uns prints e algum codigo e dizer o quero fazer 😛 estas sao as Tabelas e os campos http://img703.imageshack.us/img703/7876/screenhunter37may301138.jpg este código é a programação do botão Login Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click criar_equipa.utilizadortextbox.Text = utilizadortextbox.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) EquipasBindingSource.Filter = "Utilizador = '" & utilizadortextbox.Text & "'" utilizador = utilizadortextbox.Text user = EquipaTextBox.Text If EquipaTextBox.Text = "" Then Me.Hide() criar_equipa.Show() Else Me.Hide() frmplantel.Show() frmplantel.EquipaTextBox.Text = EquipaTextBox.Text End If End If CN.Close() End Sub o que eu quero é que quando ele fizer login isto vá buscar o orçamento á equipa dele e apresentar numa text box neste form: http://img195.imageshack.us/img195/993/screenhunter36may301424.jpg está a funcionar, mas apenas para o 1º registo da tabela.. e depois esse valor vai ser actualizado após o utilizador comprar ou vender jogadores, o botão para comprar é o seguinte: Dim resposta As Integer resposta = MsgBox("Tem a certeza que quer comprar o jogador por " & PreçoTextBox.Text & Label2.Text, MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Comprar Jogador") If resposta = vbYes Then equi = login.user EquipaTextBox.Text = equi orc = EquipasTableAdapter.Orc(equi) JogadoresTableAdapter.AtualizarEquipa(equi, NomeTextBox.Text) EquipasTableAdapter.AtualizaOrc(orc - Val(PreçoTextBox.Text), equi) End If faz tudo bem 5* com o 1º registo, se entrar com outro user isto vai buscar o orçamento do 1º registo :S, mas a equipa vai buscar a do registo certo... PS: tmb gostava de fazer uma restrição que é: caso o preço do jogador seja + elevado que o orçamento aparcer uma msgbox a dizer que n tem dinheiro, porque como tenho agora dá para ter orçamento negativo e será que tmb dá para restringir a equipa a 11 jogadores apenas e não ter +? cumps
Leudassdf Posted May 30, 2013 at 05:03 PM Report #509967 Posted May 30, 2013 at 05:03 PM Bem vamos por partes: Para ires buscar o orçamento da equia do utilizador que está a entrar tens que ter pelo menos 2 campos que te permitam saber em que equipa esta x jogador. o teu EquipasBindingSource tem que query? Quase de certeza que o problema estará ai. Deve ter qualquer coisa na query assim,where...conta.username=equipas.username, tens isto? Mostra a query para tentar ver o que causa esse teu problema. Em segundo lugar para o orçamento nao ficar a negativo é facil.Mas tens esse valor num gridview? Nessa pagina onde permites comprar só esta um jogador ou podem estar varios? É que se tiveres varios é um pouco mais dificil. Senão é so ires a gridview na linha 0 e na coluna onde tens oorçamento e veres se o valor que lá esta é superior ao teu orçamento. Mas temos que ir por partes. o mais ipmortante agora é mostrares a query que tens na EquipasBindingSource para tentar perceber se o problema é dai. depois de resolveres isso passamos ao resto.
fantasticleague Posted May 30, 2013 at 05:51 PM Author Report #509999 Posted May 30, 2013 at 05:51 PM como assim? penso que n tenho query na equipas binding source ;S
Leudassdf Posted May 30, 2013 at 06:06 PM Report #510005 Posted May 30, 2013 at 06:06 PM como assim? penso que n tenho query na equipas binding source ;S não tens? entao como é que vais buscar os dados como o orçamento? onde tens a query para isso?
fantasticleague Posted May 30, 2013 at 07:07 PM Author Report #510035 Posted May 30, 2013 at 07:07 PM será que é isto? SELECT Orçamento FROM Equipas WHERE Equipa = ? base de dados é em access
Leudassdf Posted May 30, 2013 at 08:16 PM Report #510051 Posted May 30, 2013 at 08:16 PM será que é isto? SELECT Orçamento FROM Equipas WHERE Equipa = ? base de dados é em access tu tens isso em algum lado? tu devias isto: select orçamento from equipas where utilizador=utilizadorlogado onde está a vermelho deves colocar o nome do utilizador logado. Se estiveres a usar um datasource tens que fazer assim:select orçamento from equipas where utilizador=@utilizadorlogado. com esse @ estás a dizer que queres dar um valor a esse teu campo. se avançares irás ver que te pede para especificares a fonte de dados. ai tens que dizer que é de um cookie ou de uma sessao(session). Normalmente ao efetuares login coloca-se o username numa variavel de sessao.
fantasticleague Posted May 30, 2013 at 08:39 PM Author Report #510053 Posted May 30, 2013 at 08:39 PM eu tenho o user numa variavel publica, será isso?
Leudassdf Posted May 30, 2013 at 08:46 PM Report #510055 Posted May 30, 2013 at 08:46 PM eu tenho o user numa variavel publica, será isso? convinha usares uma sessao. pois uma variável não é muito eficaz. usar uma sessao é assim:session("utilizador")=txt_utilizador muda txt_utilizador para o nome da tua texbox.... o problema de usares uma variável é que cada vez que a pagina carrega ficas sem nada. uma sessao não. por predefinição possuis 20 minutos até esse valor ser eliminado
fantasticleague Posted May 30, 2013 at 08:50 PM Author Report #510058 Posted May 30, 2013 at 08:50 PM (edited) e caso seja para entrar por exemplo entro numa conta, depois entro noutra, carrega o da nova conta? e onde crio a session? tentei criar isto dame erro na session Edited May 30, 2013 at 08:54 PM by fantasticleague
Leudassdf Posted May 30, 2013 at 08:53 PM Report #510060 Posted May 30, 2013 at 08:53 PM e caso seja para entrar por exemplo entro numa conta, depois entro noutra, carrega o da nova conta? sim se tiveres o codigo correto. A unica coisa que tens que fazer é um select a tua tabela equipas e selecionar o orçamento onde o utilizador é igual ao teu txt_username
fantasticleague Posted May 30, 2013 at 08:56 PM Author Report #510062 Posted May 30, 2013 at 08:56 PM sim se tiveres o codigo correto. A unica coisa que tens que fazer é um select a tua tabela equipas e selecionar o orçamento onde o utilizador é igual ao teu txt_username onde faço o session? ja tentei e dame erro.., no session e tmb depois onde chamo a query?
Leudassdf Posted May 30, 2013 at 09:02 PM Report #510064 Posted May 30, 2013 at 09:02 PM onde faço o session? ja tentei e dame erro.., no session e tmb depois onde chamo a query? fazes quando mandas a msgbox a dizer bem-vindo. ai colocas session("utilizador")=txt_utilizador.text o select podes fazer logo a seguir. faz isto: str="select orcamento from equipas where utilizador='" & session("utilizador") & "'" Atenção. eu penso que tu tens orçamento com a cedilha. se tiveres altera em cima... depois fazes: CN.Open() txt_orcamento.text=comando.executescalar cn.close Ve se dá. se der erro diz qual é o erro.
fantasticleague Posted May 30, 2013 at 09:05 PM Author Report #510065 Posted May 30, 2013 at 09:05 PM If cont = 0 Then MsgBox("Este utilizador ou esta password estão errados") utilizadortextbox.Focus() Else MsgBox("Bem Vindo/a " & utilizadortextbox.Text) EquipasBindingSource.Filter = "Utilizador = '" & utilizadortextbox.Text & "'" utilizador = utilizadortextbox.Text user = EquipaTextBox.Text ("utilizador") = utilizadortextbox.Text If EquipaTextBox.Text = "" Then Me.Close() criar_equipa.Show() meto dentro da msg box? o session continua a dar erro :S
Leudassdf Posted May 30, 2013 at 09:32 PM Report #510069 Posted May 30, 2013 at 09:32 PM If cont = 0 Then MsgBox("Este utilizador ou esta password estão errados") utilizadortextbox.Focus() Else MsgBox("Bem Vindo/a " & utilizadortextbox.Text) EquipasBindingSource.Filter = "Utilizador = '" & utilizadortextbox.Text & "'" utilizador = utilizadortextbox.Text user = EquipaTextBox.Text ("utilizador") = utilizadortextbox.Text If EquipaTextBox.Text = "" Then Me.Close() criar_equipa.Show() meto dentro da msg box? o session continua a dar erro :S Metes na linha em baixo da message box. que erro da a session?
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now