Jump to content
fantasticleague

Binding Source

Recommended Posts

fantasticleague

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.

Share this post


Link to post
Share on other sites
Leudassdf

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

Share this post


Link to post
Share on other sites
fantasticleague

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

Share this post


Link to post
Share on other sites
Leudassdf

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

Share this post


Link to post
Share on other sites
fantasticleague

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 :P

mesmo assim obrigado e peço desculpa n ter referido tudo lol

edit: mesmo assim continuo sem conseguir meter a funcionar

Edited by fantasticleague

Share this post


Link to post
Share on other sites
Leudassdf

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 :P

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.

Share this post


Link to post
Share on other sites
fantasticleague

Boas

portanto vou meter aqui uns prints e algum codigo e dizer o quero fazer :P

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

Share this post


Link to post
Share on other sites
Leudassdf

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.

Share this post


Link to post
Share on other sites
fantasticleague

como assim?

penso que n tenho query na equipas binding source ;S

Share this post


Link to post
Share on other sites
Leudassdf

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?

Share this post


Link to post
Share on other sites
fantasticleague

será que é isto?

SELECT Orçamento FROM Equipas WHERE Equipa = ?

base de dados é em access

Share this post


Link to post
Share on other sites
Leudassdf

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.

Share this post


Link to post
Share on other sites
Leudassdf

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

Share this post


Link to post
Share on other sites
fantasticleague

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 by fantasticleague

Share this post


Link to post
Share on other sites
Leudassdf

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

Share this post


Link to post
Share on other sites
fantasticleague

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?

Share this post


Link to post
Share on other sites
Leudassdf

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.

Share this post


Link to post
Share on other sites
fantasticleague

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

Share this post


Link to post
Share on other sites
Leudassdf

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?

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.