none
código para actualizar

    Pregunta

  • Hola muy buenos días a todos.

    Me encuentro una vez más por este foro ya que me dan muy buenas respuestas y me ayudan a resolver mis duda, y en este momento tengo una ;D espero que me puedan ayudar.

    Lo que pasa es que tengo un codigo para actualizar una base de datos que es el siguiente

    Private Sub btnactualiza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnactualiza.Click
            Dim Cnx As New SqlConnection("Data Source=123; Initial Catalog=WRAMaterialData; User ID=123; Password=123")

            Dim SQL As String = "UPDATE Corridas_Nuevos_Modelos SET Prioridad=@Prioridad where Modelo ='" & Me.cmModelos.Text & "'"" status= '1'"""

            Dim SQL1 As String = "UPDATE Corridas_Nuevos_Modelos SET fecha=@fecha where Modelo ='" & Me.cmModelos.Text & "'"" status= '2'"""

            Dim SQL2 As String = "UPDATE Corridas_Nuevos_Modelos SET Cantidad=@Cantidad where Modelo ='" & Me.cmModelos.Text & "'"" status= '3'"""

            ' Dim SQL As String = "UPDATE Corridas_Nuevos_Modelos SET fecha=@fecha where Modelo ='" & Me.cmModelos.Text & "'"" status= '4'"""

            Dim cmdproveedores As New SqlCommand(SQL, Cnx)
            cmdproveedores.CommandType = CommandType.Text

            Cnx.Open()
            cmdproveedores.ExecuteNonQuery()
            Cnx.Close()

            MsgBox("El número de parte ha sido actualizado", MsgBoxStyle.Information, "Sistema")
    End Sub

    lo que pasa es que quiero actualizar renglon por renglon pero no se como hacerlo me podrían ayudar diciendome que es lo que tengo mal, el codigo esta mal estructurado, como debe ir, o que es lo que tiene, se los agradecer muchísimo.

    Gracias desde ya.

    Saludos
    lunes, 26 de octubre de 2009 15:08

Respuestas

  • Hola!

    A ver si te sirve esto:

    Dim comando As SqlCommand
    comando = Cnx.CreateCommand

    comando.CommandText = sql
    comando.ExecuteNonQuery()

    comando.CommandText = sql1
    comando.ExecuteNonQuery()

    comando.CommandText = sql2
    comando.ExecuteNonQuery()
    lunes, 26 de octubre de 2009 15:23
  • hola

    lo que deberias hacer es utilizar los parametros de tu consulta

    algo como esto

    Private Sub btnactualiza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnactualiza.Click
            Dim Cnx As New SqlConnection("Data Source=123; Initial Catalog=WRAMaterialData; User ID=123; Password=123")

            Dim SQL As String = "UPDATE Corridas_Nuevos_Modelos SET Prioridad=@Prioridad, fecha=@fecha where Modelo = @modelo AND status = @status"

            Dim cmdproveedores As New SqlCommand(SQL, Cnx)
            cmdproveedores.CommandType = CommandType.Text

            cmdproveedores.Parameters.AddWithValue("@Prioridad", "<valor>")
            cmdproveedores.Parameters.AddWithValue("@fecha", "<fecha>")
            cmdproveedores.Parameters.AddWithValue("@modelo", Me.cmModelos.Text )
            cmdproveedores.Parameters.AddWithValue("@status", 1)
           
            Cnx.Open()
            cmdproveedores.ExecuteNonQuery()
            Cnx.Close()

            MsgBox("El número de parte ha sido actualizado", MsgBoxStyle.Information, "Sistema")
    End Sub

    como veras aqui lo hice solo para un query, epro esto mismo deberias hacerlo para cada estado que quieras actualziar.

    o sea sera este bloque por cada query, ya que de uno a otro los parametros veo que cambian.
    donde puse <> alli deberias reempalzar por el valor qeu toma ese parametro, ayq eu no vi de donde peudes tomarlo

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 26 de octubre de 2009 15:30

Todas las respuestas

  • Hola!

    A ver si te sirve esto:

    Dim comando As SqlCommand
    comando = Cnx.CreateCommand

    comando.CommandText = sql
    comando.ExecuteNonQuery()

    comando.CommandText = sql1
    comando.ExecuteNonQuery()

    comando.CommandText = sql2
    comando.ExecuteNonQuery()
    lunes, 26 de octubre de 2009 15:23
  • y ahi donde pongo los parametros y las cajas de texto y asi??
    lunes, 26 de octubre de 2009 15:26
  • hola

    lo que deberias hacer es utilizar los parametros de tu consulta

    algo como esto

    Private Sub btnactualiza_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnactualiza.Click
            Dim Cnx As New SqlConnection("Data Source=123; Initial Catalog=WRAMaterialData; User ID=123; Password=123")

            Dim SQL As String = "UPDATE Corridas_Nuevos_Modelos SET Prioridad=@Prioridad, fecha=@fecha where Modelo = @modelo AND status = @status"

            Dim cmdproveedores As New SqlCommand(SQL, Cnx)
            cmdproveedores.CommandType = CommandType.Text

            cmdproveedores.Parameters.AddWithValue("@Prioridad", "<valor>")
            cmdproveedores.Parameters.AddWithValue("@fecha", "<fecha>")
            cmdproveedores.Parameters.AddWithValue("@modelo", Me.cmModelos.Text )
            cmdproveedores.Parameters.AddWithValue("@status", 1)
           
            Cnx.Open()
            cmdproveedores.ExecuteNonQuery()
            Cnx.Close()

            MsgBox("El número de parte ha sido actualizado", MsgBoxStyle.Information, "Sistema")
    End Sub

    como veras aqui lo hice solo para un query, epro esto mismo deberias hacerlo para cada estado que quieras actualziar.

    o sea sera este bloque por cada query, ya que de uno a otro los parametros veo que cambian.
    donde puse <> alli deberias reempalzar por el valor qeu toma ese parametro, ayq eu no vi de donde peudes tomarlo

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 26 de octubre de 2009 15:30
  • o sea que...

    Dim SQL As String = "UPDATE Corridas_Nuevos_Modelos SET Prioridad=@Prioridad, fecha=@fecha where Modelo = @modelo AND status = @status"

            Dim cmdproveedores As New SqlCommand(SQL, Cnx)
            cmdproveedores.CommandType = CommandType.Text

            cmdproveedores.Parameters.AddWithValue("@Prioridad", "<valor>")
            cmdproveedores.Parameters.AddWithValue("@fecha", "<fecha>")
            cmdproveedores.Parameters.AddWithValue("@modelo", Me.cmModelos.Text )
            cmdproveedores.Parameters.AddWithValue("@status", 1)
            
            Cnx.Open()
            cmdproveedores.ExecuteNonQuery()
            Cnx.Close()

    todo este bloque de codigo lo tengo que repetir?

    Si es todo el codigo??
    lunes, 26 de octubre de 2009 15:55