Foros del Web » Programación para mayores de 30 ;) » .NET »

Access y VB.net, recuperar datos de la base de datos

Estas en el tema de Access y VB.net, recuperar datos de la base de datos en el foro de .NET en Foros del Web. Buenas! Despues de ya conseguir insertar datos, tal y como yo queria a una base de datos access, ahora me pierdo al recuperarlos. Lo que ...
  #1 (permalink)  
Antiguo 20/06/2010, 11:38
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 1
Access y VB.net, recuperar datos de la base de datos

Buenas!

Despues de ya conseguir insertar datos, tal y como yo queria a una base de datos access, ahora me pierdo al recuperarlos.

Lo que yo he hecho, es hacer un LOGIN y un REGISTRO, eso se mete en 1 base de datos que contiene 2 tablas, una se llama "Usuarios" y otra "atributos", hay 2 campos iguales en las dos bases de datos, para poder identificar a quien pertenecen los atributos. Ese campo es "usuario", ahora lo que yo quiero hacer:

Cuando hace login el usuario, se abre un nuevo FORM, y en ese form quiero recuperar datos de la tabla "atributos", de dicho usuario, por ejemplo. Pongamos que yo hago login con:

GENESISBM
hola

Llega al form, y por ejemplo quiero que me muestre el oro que tengo cuando logeo, arriba a la derecha hay un label, y en ese label quiero poner el oro que tengo que esta dentro de la tabla atributos seria "atritutos.oro".

Como podria hacer esto? Muchas gracias!

Adjunto, el codigo que tengo para registrarme, le faltan los controladores de errores, y alguna que otra cosa, pero de momento lo dejo asi provisionalmente! ^^

Código:
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim nuevousuario As datosDataSet.usuariosRow
        Dim nuevoatributos As datosDataSet.atributosRow
        Dim contenido As String
        Dim salir As Integer
        nuevousuario = DatosDataSet.usuarios.NewusuariosRow
        nuevoatributos = DatosDataSet.atributos.NewatributosRow
        contenido = usuario.Text
        salir = 0
        If contenido = "" Then
            MsgBox("Debes introducir un nombre de usuario")
            Exit Sub
        End If
        contenido = contraseña.Text
        If contenido = "" Then
            MsgBox("Debes introducir una contraseña")
            Exit Sub
        End If
        contenido = emailtxt.Text
        If contenido = "" Then
            MsgBox("Debes introducir un email")
            Exit Sub
        End If
        'lista de todas las entradas que tendra la fila nueva
        'tabla usuario
        nuevousuario.usuario = usuario.Text
        nuevousuario.password = contraseña.Text
        nuevousuario.email = emailtxt.Text
        nuevousuario.FechaAlta = Date.Today
        nuevousuario.estatus = estado
        'tabla atributos
        nuevoatributos.usuario = usuario.Text
        nuevoatributos.oro = oroinicial
        nuevoatributos.fuerza = fuerza
        nuevoatributos.vida = vida
        nuevoatributos.magia = magia
        nuevoatributos.destreza = destreza

        '--------------------------------------------------------
        DatosDataSet.usuarios.Rows.Add(nuevousuario)
        Me.UsuariosTableAdapter.Update(Me.DatosDataSet.usuarios)
        DatosDataSet.atributos.Rows.Add(nuevoatributos)
        Me.AtributosTableAdapter.Update(Me.DatosDataSet.atributos)
        ' MsgBox("El nombre de usuario ya existe o es muy largo.")
        ' salir = 1
        If salir = 0 Then
            MsgBox("Te has registrado correctamente.")
end if
    End Sub
  #2 (permalink)  
Antiguo 21/06/2010, 19:07
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Access y VB.net, recuperar datos de la base de datos

A que te refieres con que te muestre el oro?
  #3 (permalink)  
Antiguo 21/06/2010, 19:31
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Access y VB.net, recuperar datos de la base de datos

El "oro" es un campo de la base de datos, de la tabla "atributos", ahora he descubierto que con esta sintaxis:

dineroactuallbl.DataBindings.Add("text", DatosDataSet, "atributos.oro")

Me copia el contenido del campo "ORO" de la tabla "atributos" a un label, pero de una fila al azar, no la que yo quiero :(, haber si me puedes ayudar xD, la cuestión es poder elegir yo la fila previamente, buscando el campo "usuario" de la misma tabla, y así recuperar los datos que yo quiera de esa fila. Creo que lo he explicado bien >_< sino intentaremos hacerlo mejor.

Gracias por contestar! ^^

Última edición por GENESISBM; 21/06/2010 a las 19:50
  #4 (permalink)  
Antiguo 21/06/2010, 19:53
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Access y VB.net, recuperar datos de la base de datos

Lo puedes hacer con un datareader, por ejemplo

Código ASP:
Ver original
  1. Dim myConnection As SqlConnection
  2. Dim myCommand As SqlCommand
  3. Dim dr As New SqlDataReader()
  4. 'declaring the objects
  5.  
  6. sub data()
  7. myConnection = New SqlConnection("server=localhost;uid=sa;pwd=;database=pubs")
  8. 'establishing connection. you need to provide password for sql server
  9. Try
  10. myConnection.Open()
  11. 'opening the connection
  12. myCommand = New SqlCommand("Select * from discounts where usuario='" & usuario & "'", myConnection)
  13. 'executing the command and assigning it to connection
  14. dr = myCommand.ExecuteReader()
  15. While dr.Read()
  16. lbloro.text=dr(0).tostring()
  17. End While
  18. dr.Close()
  19. myConnection.Close()
  20. Catch e As Exception
  21. End Try
  22. End Sub

Prueba esto, nada mas cambia los datos de la base de datos y la instruccion select
  #5 (permalink)  
Antiguo 22/06/2010, 07:11
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Access y VB.net, recuperar datos de la base de datos

Vale Jaullo, vamos por el buen camino xDD, con tu codigo he conseguido localizar el numero de fila, del usuario que se busca.

Tengo esto:

Código:
Imports System.Data.OleDb
Public Class Form1

    Dim myConnection As OleDbConnection
    Dim myCommand As OleDbCommand
    Dim dr As OleDbDataReader
    Dim user As String

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        user = TextBox1.Text
        myConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\datos.mdb")
        'establishing connection. you need to provide password for sql server
        Try
            myConnection.Open()
            ' opening the connection
            myCommand = New OleDbCommand("Select * from atributos where usuario='" & user & "'", myConnection)
            '  executing the command and assigning it to connection
            dr = myCommand.ExecuteReader()
            While dr.Read()
                lbloro.Text = dr(0).ToString() 'esto te dice el numero de fila en la que se encuentra el usuario buscado o logeado
            End While
            dr.Close()
            myConnection.Close()
        Catch ex As Exception
            MsgBox("Fallo")
        End Try
    End Sub
End Class
Y lo que quiero es, que de esa fila, en la que a encontrado el usuario en cuestion, me mire el campo "ORO" y me lo pase a una variable, a un textbox o un label, lo que sea, eso ya lo adaptare yo.

Es de esas cosas que tienen que ser faciles, pero hasta que no lo ves, no te sale... y mira que he probado combinaciones >_<. Haber si me puedes hechar un cable!

Muchas gracias por tu tiempo ^^
  #6 (permalink)  
Antiguo 22/06/2010, 09:11
Avatar de jaullo  
Fecha de Ingreso: abril-2009
Mensajes: 994
Antigüedad: 15 años
Puntos: 30
Respuesta: Access y VB.net, recuperar datos de la base de datos

Es sencillo, puedes tratar de dos formas.

1. Cuando el usuario hace login tomas el Username lo guardas en una variable y ejecutas el procedimiento anterior sobre la tabla atributos para traer el oro

2. Que es en base a lo que hiciste con el procedimiento anterior (que ya lo tienes listo).
Mira, estas haciendo esto:
Código ASP:
Ver original
  1. Select * from atributos where usuario='" & user & "'"
Con esto te estas trayendo todos los datos de la tabla atributos, pero el problema lo tienes aquí:
Código ASP:
Ver original
  1. lbloro.Text = dr(0).ToString() 'esto te dice el numero de fila en la que se encuentra el usuario buscado o logeado

Porque?, porque aqui estas obteniendo el primer campo que la instruccion select encuentre, sea cual sea, entonces como lo solucionas:
Puedes llamar unicamente los datos que necesitas por ejemplo:
Código ASP:
Ver original
  1. Select usuario,oro from atributos
entonces para asignarlo haces:
Código ASP:
Ver original
  1. label1.Text = dr(0).ToString() 'este seria el usuario
  2. label2.Text = dr(1).ToString() ' este el oro

O bien, seguir usando el select que tienes, pero entonces podrias cambiar el valor por el nombre de la columna de tu base de datos.
Asi:
Código ASP:
Ver original
  1. label1.Text = dr("usuario").ToString() 'este seria el usuario
  2. label2.Text = dr("oro").ToString() ' este el oro
Espero esto te ayude.

Saludo,
  #7 (permalink)  
Antiguo 22/06/2010, 18:57
 
Fecha de Ingreso: enero-2009
Mensajes: 119
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Access y VB.net, recuperar datos de la base de datos

Muchisimas gracias Jaullo!

Ahora si todo perfecto :P, seguro que me veras mas por aqui porque tendre mas dudas! xD

Gracias de nuevo!

Etiquetas: access, recuperar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:09.