none
Ayuda con mostrar datos de una base de datos en textbox RRS feed

  • Pregunta

  • Disculpen por preguntar tanto, estoy aprendiendo. Tengo un sistema sencillo que inicia con un logueo de nombre de usuario y contraseña. lo que necesito es que el nombre de usuario de la persona que se logueó me aparezca en otro formulario en un textbox. este es el codigo del formulario del login:

    _____________________________________________________________________________________

    Imports System.Data.OleDb
    Public Class Bienvenido
    Dim conexion As New OleDbConnection
    Dim comando As New OleDbCommand
    Dim adaptador As New OleDbDataAdapter
    Dim lector As OleDbDataReader

    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
    Dim consulta As String
    conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & "C:\Login Control\database\Base de datos.accdb"
    conexion.Open()
    consulta = "select * from NuevoRegistro where IdUsuario = '" & UsernameTextBox.Text & "'AND Contraseña ='" & PasswordTextBox.Text & "'"
    comando = New OleDbCommand(consulta, conexion)
    adaptador.SelectCommand = comando
    lector = comando.ExecuteReader
    If lector.Read = True Then
    MsgBox(String.Format("Bienvenido {0}", lector("IdUsuario")), vbInformation, "Bienvenido")
    Me.Hide()
    Form1.Show()

    Else
    MsgBox("Nombre de usuario o contraseña incorrecta", vbExclamation, "Error")
    UsernameTextBox.Text = ""
    PasswordTextBox.Text = ""
    conexion.Close()
    End If


    End Sub

    _________________________________________________________________________

    Cabe destacar que el formulario donde deseo que aparezca el nombre de la persona que se logueó ya tiene una conexion hecha a la bd puesto que alli guarda información. para facilitar el asunto aqui esta el codigo de ese formulario.

    _________________________________________________________________________

    Imports System.Data.OleDb

    Public Class Form4
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    TextBox1.Text = TimeOfDay
    TextBox2.Text = DateString
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    Dim pregunta As MsgBoxResult
    pregunta = MsgBox("¿Esta seguro que desea salir?", MsgBoxStyle.YesNo, "Salir")
    If pregunta = MsgBoxResult.Yes Then
    Me.Close()
    Else
    End If
    End Sub

    Dim conexion As New OleDbConnection
    Dim comando As New OleDbCommand

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim HoraSalida As String = TextBox1.Text
    Dim Fecha As String = TextBox2.Text
    Dim IdUsuario As String = TextBox3.Text
    Using conexion As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & "C:\Login Control\database\Base de datos.accdb")
    Dim comando As OleDbCommand = New OleDbCommand()
    Dim enlace As New BindingSource
    comando.Connection = conexion
    comando.Connection.Open()
    comando.Parameters.Clear()
    comando.CommandText = "INSERT INTO HoraEntrada(HoraSalida,Fecha, IdUsuario) VALUES (@HoraSalida,@Fecha,@IdUsuario)"
    comando.Parameters.AddWithValue("@Hora Salida", HoraSalida)
    comando.Parameters.AddWithValue("@Fecha", Fecha)
    comando.Parameters.AddWithValue("@IdUsuario", IdUsuario)
    comando.ExecuteNonQuery()
    MsgBox("Guardado Correctamente", vbInformation, "Correcto")
    comando.ExecuteNonQuery()
    comando.Connection.Close()

    End Using
    End Sub

    ________________________________________________________________________

    Como haria para mostrar el nombre de usuario logueado en ese formulario en un textbox? Gracias por la ayuda

    Favor omitir el aspecto de la definicion de parametros


    • Editado Fedekiko domingo, 4 de agosto de 2013 19:31
    • Cambiado Enrique M. Montejo sábado, 14 de septiembre de 2013 18:19 Acceso a datos
    domingo, 4 de agosto de 2013 14:29

Todas las respuestas

  • hola

    recuerda cerrar una pregunta

    social.msdn.microsoft.com/Forums/es-ES/bbc54dbe-ac30-4c47-82a1-7959909f47eb/ayuda-con-mostrar-datos-de-una-base-de-datos-en-msgbox

    para despues abrir una nueva, solo marca la respuesta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 4 de agosto de 2013 14:35
  • lo que recomendaria es que las acciones las realices en pasos separados, con uno metodo autenticas y con tro diferentes recuperes los datos del usuario

    pero me pregunto, porque cuando usas el INSERT defines parametros y cuando haces el SELECT

    consulta = "select * from NuevoRegistro where IdUsuario = '" & UsernameTextBox.Text & "'AND Contraseña ='" & PasswordTextBox.Text & "'"

    no lo usas, como recomendte en la anterior pregunta que realizaste sobre el tema

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    domingo, 4 de agosto de 2013 14:37
  • ya marque social.msdn.microsoft.com/Forums/es-ES/bbc54dbe-ac30-4c47-82a1-7959909f47eb/ayuda-con-mostrar-datos-de-una-base-de-datos-en-msgbox como respuesta, gracias por la aclaracion. ya defini parametros en la consulta pero la duda con lo del textbox sigue. me podrias dar una mano con este tema? muchas gracias.
    domingo, 4 de agosto de 2013 15:21
  • hola que tal

    queria saber si estas usando POO ?

    si quiers saber el nombre de usuario en otro formulario lo que tienes que hacer es facil

    public function user(xcod as string)as dataset 'funcion que usaras para sacar el nombre del usuario

    dim dap as new sqldataadapter("select Nombre from NuevoRegistro where IdUsuario='"& xcod &"' ",conexion ) dim dst as new dataset dap.fill(dst) return dst end function 'ahora si usas u modulo puedes definir una variable global 'en caso estas no lo uses declara dentro de tu primer formulario una variable global '-primer formulario dim Nombre as string 'sacas el valor del primer registro del dataset y lo conviertes en string para ser cargado al textbox

    nombre=user(usernametextbox.text).tables(0).rows(0).item(0).tostring ahora en tu segundo formulario si quieres llenar el nombre txtForm2Nombre=form1.nombre



    lunes, 5 de agosto de 2013 13:57
  • pero la duda con lo del textbox sigue. me podrias dar una mano con este tema?

    que codigo implementaste para este tema, usando parametros y cual seria la duda, algun error

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    lunes, 5 de agosto de 2013 14:26
  • El codigo es el que esta posteado. Lo que necesito es saber como llamar el nombre del usuario introducido en el login en un textbox en otro formulario. Por ejemplo:

    Nombre de Usuario: Federico

    Contraseña: XXXXXXX

    Y que en otro formulario aparte diga por ejemplo:
    Bienvenido "Federico"

    Pero ese nombre quiero que aparezca en un textbox.

    domingo, 11 de agosto de 2013 15:48
  • Podrías probar esto haber si te funciona?

    Imports System.Data.OleDb
    Public Class Bienvenido
    Dim conexion As New OleDbConnection
    Dim comando As New OleDbCommand
    Dim adaptador As New OleDbDataAdapter
    Dim lector As OleDbDataReader
    
    Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
    Dim consulta As String
    conexion.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & "C:\Login Control\database\Base de datos.accdb"
    conexion.Open()
    consulta = "select * from NuevoRegistro where IdUsuario = '" & UsernameTextBox.Text & "'AND Contraseña ='" & PasswordTextBox.Text & "'"
    comando = New OleDbCommand(consulta, conexion)
    adaptador.SelectCommand = comando
    lector = comando.ExecuteReader
    If lector.Read = True Then
    Dim FormularioSaludo As New Form1
    'Cambiar TxtNombreUsuario por el nombre de tu TextBox
    'donde quieres mostrar el nombre del usuario.
    FormularioSaludo.TxtNombreUsuario.Text=lector("IdUsuario")
    FormularioSaludo.ShowDialog()
    Me.Hide()
    Else
    MsgBox("Nombre de usuario o contraseña incorrecta", vbExclamation, "Error")
    UsernameTextBox.Text = ""
    PasswordTextBox.Text = ""
    conexion.Close()
    End If
    
    
    End Sub

    Espero que te sirva de ayuda

    Saludos

    Si la respuesta solucionó tu problema recuerda marcarla como respuesta.


    nunca te acostarás sin saber una cosa más

    domingo, 11 de agosto de 2013 20:42