none
Ayuda con mi codigo porfavor!!! RRS feed

  • Pregunta

  • Miren este es mi codigo

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Me.ArticulosTableAdapter.Fill(Me.Video_MaryDataSet.Articulos)
            Using cnn As New OleDb.OleDbConnection("Provider =Microsoft.ACE.OLEDB.12.0;" & "Data Source= C:\Documents and Settings\Admin\Mis documentos\VideoClub Mary\Video Mary.accdb")
                cnn.Open()
                Dim cmd As New OleDbCommand("SELECT Cod_Art,Nombre,Distribuidora,Cantidad,Precio FROM Articulos WHERE Cod_Art=@Cod_Art")
                cmd.Parameters.AddWithValue("@Cod_Art", Me.codtext.Text)
                cmd.Connection = cnn
                Dim red As OleDbDataReader = cmd.ExecuteReader
                Try
                    If red.HasRows Then
                        Me.nomtext.Text = red("Distribuidora")
                        Me.cantext.Text = red("Cantidad")
                        Me.pretext.Text = red("Precio")
                    End If
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                End Try
                cnn.Close()
            End Using
        End Sub

    El problema de mi codigo esque solo me busca el primer registro de la tabla, y yo quiero q me lo busque dependiendo de lo q hay en el textbox llamado "codtext" , pero si pongo otro codigo en el codtext , me lo cambia por el codigo del primer registro :S :S , que tendria q cambiarle a mi codigo amigos!!??

    viernes, 4 de enero de 2013 20:42

Respuestas

  • Gracias a Todos pero sinceramente ninguna respuesta me ayudo, solo por aquello para aportar la solucion de este problema y para las personas q mas adelante tengan el mismo problema que yo, esta es la solucion!!!

    Sub buscar()
            Using cnn As New OleDb.OleDbConnection("Provider =Microsoft.ACE.OLEDB.12.0;" & "Data Source= C:\Documents and Settings\Admin\Mis documentos\VideoClub Mary\Video Mary.accdb")
                Dim cmd As New OleDbCommand("SELECT * FROM Articulos WHERE Cod_Art= '" & Modart.busquedatext.Text & "'", cnn)
                Dim dr As OleDbDataReader
                cnn.Open()
                dr = cmd.ExecuteReader
                If dr.Read Then
                    codtext.Text = dr(0)
                    nomtext.Text = dr(1)
                    distext.Text = dr(2)
                    cantext.Text = dr(3)
                    pretext.Text = dr(4)
                Else
                    MsgBox("No existe el registro")
                End If
                cnn.Close()
            End Using
        End Sub

    Y despues de eso agregan el buscar() en el evento click de un boton!!!

    • Marcado como respuesta BryanZark01 viernes, 4 de enero de 2013 23:04
    viernes, 4 de enero de 2013 23:03

Todas las respuestas

  • Hola, ¿Has intentado convertir a Integer el valor del textbox?, con Ctype o Cint.

    Si bien pienso que lo ideal es como has colocado el parámetro, podrías probar para descartar:

    "SELECT Cod_Art,Nombre,Distribuidora,Cantidad,Precio FROM Articulos WHERE Cod_Art=" & Me.codtext.Text

    Y luego no agregar el parámetro.

    Saludos

    viernes, 4 de enero de 2013 20:57
  • Julian

    esta solucion que aportas sin usar parametros es pesima, estamos fomentando todo los dias el uso de parametros y resulta que recomiendas no ahcerlo

    esto que propones no es valido de usarse

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 4 de enero de 2013 22:04
  • tiene que usar el like

    o sea

    Dim query As String = "SELECT Cod_Art,Nombre,Distribuidora,Cantidad,Precio FROM Articulos WHERE Cod_Art LIKE '%' + @Cod_Art + '%'"

    Dim cmd As New OleDbCommand(query, cnn)

    como veras los comodies se concatenan a parametro, pero ojo todo es un solo string

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    viernes, 4 de enero de 2013 22:05
  • Gracias a Todos pero sinceramente ninguna respuesta me ayudo, solo por aquello para aportar la solucion de este problema y para las personas q mas adelante tengan el mismo problema que yo, esta es la solucion!!!

    Sub buscar()
            Using cnn As New OleDb.OleDbConnection("Provider =Microsoft.ACE.OLEDB.12.0;" & "Data Source= C:\Documents and Settings\Admin\Mis documentos\VideoClub Mary\Video Mary.accdb")
                Dim cmd As New OleDbCommand("SELECT * FROM Articulos WHERE Cod_Art= '" & Modart.busquedatext.Text & "'", cnn)
                Dim dr As OleDbDataReader
                cnn.Open()
                dr = cmd.ExecuteReader
                If dr.Read Then
                    codtext.Text = dr(0)
                    nomtext.Text = dr(1)
                    distext.Text = dr(2)
                    cantext.Text = dr(3)
                    pretext.Text = dr(4)
                Else
                    MsgBox("No existe el registro")
                End If
                cnn.Close()
            End Using
        End Sub

    Y despues de eso agregan el buscar() en el evento click de un boton!!!

    • Marcado como respuesta BryanZark01 viernes, 4 de enero de 2013 23:04
    viernes, 4 de enero de 2013 23:03