none
Update SQL 2008 desde vb net RRS feed

  • Pregunta

  •        

     Tengo este codigo: Dim con As New SqlConnection

    Dim cmd As New SqlCommand
    
            con.ConnectionString = "Data Source=blablabla;Initial Catalog=blablabla;User ID=bla;Password=blabla"
            con.Open()
            cmd.Connection = con
            cmd = New SqlClient.SqlCommand("UPDATE MP SET ESTADO= 'A' WHERE ORDEN=" & Trim(orden2.Text) & " AND LINEA= " & linea2.Text & " AND PARTIDA= " & partida2.Text & " AND PART_ID = " & part2.Text, con)
            cmd.Parameters.Add("@ESTADO", SqlDbType.NVarChar, 20)
            cmd.Parameters("@ESTADO").Value = edo2.Text
            Dim i As Integer = cmd.ExecuteNonQuery()
            If (i > 0) Then
                con.Close()
            End If

    La cuestion es que cuando lo corro me aparece esto:

    "Conflicto de tipos de operandos: text es incompatible con smallint"

    La cuestion es que yo determino que sea un nvarchar de 20 caracteres en el update y tambien asi lo tengo configurado en la base de datos, no me explico de donde saca el smallint. Por favor, me urge entregar este proyecto.


    • Cambiado Enrique M. Montejo lunes, 15 de septiembre de 2014 11:48 Pregunta relacionada con el acceso a datos con SQL Server.
    • Editado Xavier_B viernes, 19 de septiembre de 2014 16:42
    jueves, 11 de septiembre de 2014 19:00

Todas las respuestas

  • Hola:
    Prueba a cambiar tu codigo por este otro

            Try
                Dim lsCadConexion As String = "Data Source=blablabla;Initial Catalog=blablabla;User ID=bla;Password=blabla"
                Dim lsQuery As String = "UPDATE MP SET ESTADO=@Estado WHERE ORDEN=@Orden AND LINEA=@Linea AND PARTIDA=@Partida AND PART_ID=@PartID"
                Using loConexion As New SqlConnection(lsCadConexion)
                    ' crear comando
                    Using loComando As New SqlCommand(lsQuery, loConexion)
                        'añadir parametros al comando
                        loComando.Parameters.Add(New SqlParameter("@Estado", "A"))
                        loComando.Parameters.Add(New SqlParameter("@Orden", orden2.Text.Trim))
                        loComando.Parameters.Add(New SqlParameter("@Linea", linea2.Text))
                        loComando.Parameters.Add(New SqlParameter("@Partida", partida2.Text))
                        loComando.Parameters.Add(New SqlParameter("@PartID", part2.Text))
                        loConexion.Open()   ' abrir conexión
                        loComando.ExecuteNonQuery()
                    End Using
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub

    Un saludo desde Bilbo
    Carlos

    viernes, 12 de septiembre de 2014 9:32
  • Muchisimas gracias por tomarte tu tiempo con esto Carlos. Hoy llegue y lo corri pero me aparecio otro error...



    • Editado Xavier_B viernes, 19 de septiembre de 2014 16:45
    viernes, 12 de septiembre de 2014 14:36
  • Alguien mas que me pueda ayudar porfavor, no he podido salir de esto.

    Agregue mas codigo al anterior y siguio dando el mismo error...

    Private Sub update2()
    
            Try
                Dim lsCadConexion As String = "Data Source=PROMETHEUS\PROMETHEUS;Initial Catalog=master;User ID=sa;Password=MGMEX"
                Dim lsQuery As String = "UPDATE MP SET ESTADO=@Estado WHERE ORDEN=@Orden AND LINEA=@Linea AND PARTIDA=@Partida AND PART_ID=@PartID"
                Using loConexion As New SqlConnection(lsCadConexion)
                    loConexion.Open()
                    Using loComando As New SqlCommand(lsQuery, loConexion)
    
                        loComando.Parameters.Add(New SqlParameter("@Estado", SqlDbType.NVarChar, 10))
                        loComando.Parameters("@Estado").Value = edo2.Text
                        loComando.Parameters.Add(New SqlParameter("@Orden", SqlDbType.NVarChar, 6))
                        loComando.Parameters("@Orden").Value = orden2.Text
                        loComando.Parameters.Add(New SqlParameter("@Linea", SqlDbType.NVarChar, 2))
                        loComando.Parameters("@Linea").Value = linea2.Text
                        loComando.Parameters.Add(New SqlParameter("@Partida", SqlDbType.NVarChar, 2))
                        loComando.Parameters("@Partida").Value = partida2.Text
                        loComando.Parameters.Add(New SqlParameter("@PartID", SqlDbType.NVarChar, 6))
                        loComando.Parameters("@PartID").Value = part2.Text
    
                        loComando.ExecuteNonQuery()
                    End Using
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
    
        End Sub
    Ayuda porfavor!!!!


    • Editado Xavier_B viernes, 19 de septiembre de 2014 17:27
    viernes, 19 de septiembre de 2014 16:46