none
error que aparece en windows XP pero no en SEVEN RRS feed

  • Pregunta

  • hola a todos luego de terminar mi aplicacion e instalarla en la pc usuario resulta que aparecen un error que no salia en windows 7 es un proyecto que usa un formulario MDI container pero sale un error como solo en la pc del cliente en laq ue  desarrole la aplicacion todo normal y trabaja como debe esta es la imagen del error y me saca un log inmenso lo subire si es necesario espero me puedan ayudar de antemano muchas gracias .

     

     

    y aca el codigo de todo el formulario :

     

    Imports System
    Imports System.Data
    Imports System.Data.SqlTypes
    Imports System.Data.SqlClient
    Imports System.Windows.Forms
    
    
    Public Class Formvents
        Private dt As New DataTable
        Dim cn As New SqlConnection("server=azucena;initial catalog=pqs;integrated security=true;")
        Dim cn2 As New SqlConnection("server=azucena;initial catalog=pqs;integrated security=true;")
    
        Private Sub Formvents_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
            DataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.FloralWhite
            DataGridView1.DefaultCellStyle.BackColor = Color.Beige
    
            dt.Columns.Add("codigo venta", GetType(System.Data.SqlTypes.SqlInt32))
            dt.Columns.Add("codigo producto", GetType(System.Data.SqlTypes.SqlString))
            dt.Columns.Add("cantidad", GetType(System.Data.SqlTypes.SqlDecimal))
    
    
    
    
            Dim condicion As String
            Dim condicion2 As String
            Dim condicion3 As String
    
    
            Dim cmd1 As New SqlCommand("select producto from producto", cn)
            cn.Open()
            Dim rdr1 As SqlDataReader = cmd1.ExecuteReader()
            cmbproducto.Items.Clear()
    
            Do While rdr1.Read
                condicion = rdr1.GetValue(0)
                cmbproducto.Items.Add(condicion)
    
            Loop
            cn.Close()
            Dim cmd2 As New SqlCommand("select razon_social from tienda ", cn)
            cn.Open()
            Dim rdr2 As SqlDataReader = cmd2.ExecuteReader()
            cmbtienda.Items.Clear()
    
            Do While rdr2.Read
                condicion2 = rdr2.GetValue(0)
                cmbtienda.Items.Add(condicion2)
    
            Loop
            cn.Close()
    
            Dim cmd3 As New SqlCommand("select nombre from proveedor where cod_proveedor= 20522423808", cn)
            cn.Open()
    
            Dim rdrprove As SqlDataReader = cmd3.ExecuteReader()
            cmbproveedor.Items.Clear()
    
            Do While rdrprove.Read
                condicion3 = rdrprove.GetValue(0)
    
                cmbproveedor.Items.Add(condicion3)
    
            Loop
            DataGridView1.DataSource = dt
            txtfactura.Focus()
            cn.Close()
    
    
    
    
    
        End Sub
    
    
        Private Sub txtcodigo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtcodigo.Click
            Me.txtcodigo.Text = ""
        End Sub
    
        Private Sub cmbtienda_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbtienda.SelectedIndexChanged
            Dim comand As New SqlCommand()
            comand.Connection = cn
            cn.Open()
            comand.CommandText = "select cod_tienda from tienda where razon_social=@razon_social"
            comand.CommandType = CommandType.Text
            comand.Parameters.Add("@razon_social", SqlDbType.VarChar, 20).Value = cmbtienda.Text
            Dim read As SqlClient.SqlDataReader
            read = comand.ExecuteReader
            read.Read()
            Me.txtcodtienda.Text = read.Item("cod_tienda").ToString
            read.Close()
            cn.Close()
        End Sub
    
        Private Sub cmbproducto_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbproducto.SelectedIndexChanged
            Dim comand1 As New SqlCommand()
            comand1.Connection = cn
            cn.Open()
            comand1.CommandText = "select cod_producto from producto where producto=@producto"
            comand1.CommandType = CommandType.Text
            comand1.Parameters.Add("@producto", SqlDbType.VarChar, 20).Value = cmbproducto.Text
            Dim read1 As SqlClient.SqlDataReader
            read1 = comand1.ExecuteReader
            read1.Read()
            Me.txtcodproducto.Text = read1.Item("cod_producto").ToString
            read1.Close()
            cn.Close()
    
    
            Dim com As New SqlCommand()
            com.Connection = cn
            cn.Open()
            com.CommandText = "select precio_unitario from producto where producto=@producto"
            com.CommandType = CommandType.Text
            com.Parameters.Add("@producto", SqlDbType.VarChar, 20).Value = cmbproducto.Text
            Dim rad As SqlClient.SqlDataReader
            rad = com.ExecuteReader
            rad.Read()
            Me.TextBox1.Text = rad.Item("precio_unitario").ToString
            read1.Close()
    
            cn.Close()
    
    
    
    
    
    
        End Sub
    
        Private Sub cmbproveedor_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbproveedor.SelectedIndexChanged
            Dim comand2 As New SqlCommand()
            comand2.Connection = cn
            cn.Open()
            comand2.CommandText = "select cod_proveedor from proveedor where nombre=@nombre"
            comand2.CommandType = CommandType.Text
            comand2.Parameters.Add("@nombre", SqlDbType.VarChar, 20).Value = cmbproveedor.Text
            Dim read2 As SqlClient.SqlDataReader
            read2 = comand2.ExecuteReader
            read2.Read()
            Me.txtcodproveedor.Text = read2.Item("cod_proveedor").ToString
            read2.Close()
            cn.Close()
        End Sub
    
        Private Sub btnagregar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnagregar.Click
    
            If String.IsNullOrEmpty(txtfactura.Text) Then
                MessageBox.Show("Factura es incorrecta")
                Return
            End If
    
            If String.IsNullOrEmpty(txtcodproveedor.Text) Then
                MessageBox.Show("Ingrese el proveedor")
                Return
            End If
            If String.IsNullOrEmpty(txtcodtienda.Text) Then
                MessageBox.Show("Elija un cliente")
                Return
            End If
    
            Dim cant As Decimal = 0
            If Not Decimal.TryParse(txtcantidad.Text, cant) Then
                MessageBox.Show("Ingrese la cantidad correctamente")
                Return
            End If
            If txtcodigo.Text = "Ejemplo: 3005201104" Then
                MessageBox.Show("Codigo de venta erroneo")
                Return
            End If
            Try
                Dim V() As Object = {Convert.ToInt32(txtcodigo.Text), txtcodproducto.Text, Convert.ToDecimal(txtcantidad.Text)}
                dt.Rows.Add(V)
    
    
            Catch y As Exception
                MessageBox.Show(y.Message)
            End Try
        End Sub
    
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            dt.Rows.RemoveAt(Me.DataGridView1.CurrentRow.Index)
        End Sub
    
        Private Sub btnguardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnguardar.Click
            Dim total As SqlDecimal = 0
    
            Try
                Dim cmdlf As New SqlCommand()
                cmdlf.Connection = cn
                cn.Open()
                cmdlf.CommandText = "sp_ins_ltlfac"
                cmdlf.CommandType = CommandType.StoredProcedure
                cmdlf.Parameters.Add("@cod_factura", SqlDbType.VarChar, 15).Value = txtfactura.Text
                cmdlf.Parameters.Add("@cod_proveedor", SqlDbType.VarChar, 15).Value = txtcodproveedor.Text
                cmdlf.Parameters.Add("@fecha", SqlDbType.DateTime).Value = DateTimePicker1.Value
                cmdlf.ExecuteNonQuery()
                cn.Close()
            Catch x As SqlClient.SqlException
                MessageBox.Show(x.Message)
            End Try
    
    
            Try
                Try
                    Dim cmdvent As New SqlCommand()
                    cmdvent.Connection = cn
                    cn.Open()
                    cmdvent.CommandText = "sp_insert_vent"
                    cmdvent.CommandType = CommandType.StoredProcedure
                    cmdvent.Parameters.Add("@cod_venta", SqlDbType.Int).Value = txtcodigo.Text
                    cmdvent.Parameters.Add("@cod_factura", SqlDbType.VarChar, 15).Value = txtfactura.Text
                    cmdvent.Parameters.Add("@cod_tienda", SqlDbType.VarChar, 15).Value = txtcodtienda.Text
                    cmdvent.Parameters.Add("@monto", SqlDbType.Decimal).Value = txtimporte.Text
                    cmdvent.Parameters.Add("@fecha", SqlDbType.DateTime).Value = DateTimePicker1.Value
                    cmdvent.ExecuteNonQuery()
                    cn.Close()
                Catch b As Exception
                    MessageBox.Show(b.Message)
    
                End Try
    
            Catch ex As SqlClient.SqlException
                MessageBox.Show(ex.Message)
            End Try
    
    
                Try
                    cn.Open()
    
                Dim comandofactura As New SqlClient.SqlCommand("sp_insert_detvent", cn)
                comandofactura.CommandType = CommandType.StoredProcedure
    
                Dim comandodesc As New SqlClient.SqlCommand("sp_descuenta_stock", cn)
                comandodesc.CommandType = CommandType.StoredProcedure
    
                    For Each f As DataRow In dt.Rows
                    comandofactura.Parameters.Clear()
                    comandofactura.Parameters.Add("@cod_venta", SqlDbType.Int).Value = f("codigo venta")
                    comandofactura.Parameters.Add("@cod_producto", SqlDbType.VarChar, 15).Value = f("codigo producto")
                    comandofactura.Parameters.Add("@cantidad", SqlDbType.Decimal).Value = f("cantidad")
                    comandofactura.ExecuteNonQuery()
    
                    comandodesc.Parameters.Clear()
                    comandodesc.Parameters.Add("@cantidad", SqlDbType.Decimal).Value = f("cantidad")
                    comandodesc.Parameters.Add("@cod_producto", SqlDbType.VarChar, 15).Value = f("codigo producto")
                    comandodesc.ExecuteNonQuery()
                    MessageBox.Show("venta registrada satisfactoriamente")
                Next
                cn.Close()
    
    
            Catch ex As SqlClient.SqlException
                MessageBox.Show(ex.Message)
            End Try
    
    
        End Sub
    
        Private Sub txtcodproducto_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtcodproducto.TextChanged
            Try
                Dim comand3 As New SqlCommand()
                comand3.Connection = cn2
                cn2.Open()
                comand3.CommandText = "select precio_unitario from producto where cod_producto=@cod_producto"
                comand3.CommandType = CommandType.Text
                comand3.Parameters.Add("@cod_producto", SqlDbType.VarChar, 15).Value = txtcodproducto.Text
                Dim rdrdpr As SqlClient.SqlDataReader
                rdrdpr = comand3.ExecuteReader
                rdrdpr.Read()
                Me.TextBox1.Text = rdrdpr.Item("precio_unitario").ToString
                rdrdpr.Close()
                cn2.Close()
            Catch x As Exception
                MessageBox.Show("Error")
            End Try
        End Sub
    
    
        Private Sub txtcantidad_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtcantidad.GotFocus
            Me.txtimporte.Text = Val(TextBox1.Text) * Val(txtcantidad.Text)
        End Sub
    
        Private Sub txtcantidad_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtcantidad.LostFocus
            Me.txtimporte.Text = Val(TextBox1.Text) * Val(txtcantidad.Text)
        End Sub
    
        Private Sub txtimporte_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtimporte.GotFocus
            Me.txtimporte.Text = Val(TextBox1.Text) * Val(txtcantidad.Text)
        End Sub
    
        Private Sub txtimporte_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtimporte.LostFocus
            Me.txtimporte.Text = Val(TextBox1.Text) * Val(txtcantidad.Text)
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            Me.txtcantidad.Clear()
            Me.txtimporte.Clear()
    
    
        End Sub
    End Class
    


     

     

    martes, 8 de noviembre de 2011 15:27

Respuestas

  • TIENES RAZON SERA ESTA TONTO QUE SO T_T 

     

     

    esta
            Dim cmd3 As New SqlCommand("select nombre from proveedor where cod_proveedor= 20522423808", cn)
            cn.Open()
    
    por esta ?? 
            Dim cmd3 As New SqlCommand("select nombre from proveedor where cod_proveedor= '20522423808' ", cn)
            cn.Open()

    osea con comillas simples??
    lo pruebo y si es perdon por hacerte perder el tiempo.
    muchas gracias  ahora comento

    • Marcado como respuesta inbetweener miércoles, 9 de noviembre de 2011 15:09
    martes, 8 de noviembre de 2011 17:15

Todas las respuestas

  • hola

    no subas el log inmenso, pero si seria util la primer parte antes de empezar a mencionar las dll

     

    segun veo te conectas a una db, la pregunta seria desde la pc que falla has validado que tiene acceso a esa db ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 8 de noviembre de 2011 16:28
  • si tiene acceso solo ese form child es el que da error imagino en el load por que es cuando lo llamo que parece el error este es el log espero me puedas ayudar leandro . muchas gracias

     

     

    Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración 

    Just-In-Time (JIT) en lugar de a este cuadro de diálogo.

     

    ************** Texto de la excepción **************

    System.Data.SqlClient.SqlException: Error al convertir el tipo de datos varchar a numeric.

       en System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)

       en System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)

       en System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)

       en System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

       en System.Data.SqlClient.SqlDataReader.HasMoreRows()

       en System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout)

       en System.Data.SqlClient.SqlDataReader.Read()

       en PQSsis.Formvents.Formvents_Load(Object sender, EventArgs e) en F:\PQSsis\PQSsis\formvents.vb:línea 59

       en System.Windows.Forms.Form.OnLoad(EventArgs e)

       en System.Windows.Forms.Form.OnCreateControl()

       en System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)

       en System.Windows.Forms.Control.CreateControl()

       en System.Windows.Forms.Control.WmShowWindow(Message& m)

       en System.Windows.Forms.Control.WndProc(Message& m)

       en System.Windows.Forms.ScrollableControl.WndProc(Message& m)

       en System.Windows.Forms.ContainerControl.WndProc(Message& m)

       en System.Windows.Forms.Form.WmShowWindow(Message& m)

       en System.Windows.Forms.Form.WndProc(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

       en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

       en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

     

     

    ************** Ensamblados cargados **************

    mscorlib

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

    ----------------------------------------

    PQSsis

        Versión del ensamblado: 1.0.0.0

        Versión Win32: 1.0.0.0

        Código base: file:///G:/PQSsis/PQSsis/bin/Debug/PQSsis.exe

    ----------------------------------------

    Microsoft.VisualBasic

        Versión del ensamblado: 8.0.0.0

        Versión Win32: 8.0.50727.42 (RTM.050727-4200)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll

    ----------------------------------------

    System

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll

    ----------------------------------------

    System.Windows.Forms

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

    ----------------------------------------

    System.Drawing

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

    ----------------------------------------

    System.Runtime.Remoting

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll

    ----------------------------------------

    System.Data

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_32/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll

    ----------------------------------------

    System.Configuration

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

    ----------------------------------------

    System.Xml

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll

    ----------------------------------------

    System.Transactions

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_32/System.Transactions/2.0.0.0__b77a5c561934e089/System.Transactions.dll

    ----------------------------------------

    System.EnterpriseServices

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/assembly/GAC_32/System.EnterpriseServices/2.0.0.0__b03f5f7f11d50a3a/System.EnterpriseServices.dll

    ----------------------------------------

    System.Windows.Forms.resources

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.42 (RTM.050727-4200)

        Código base: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_es_b77a5c561934e089/System.Windows.Forms.resources.dll

    ----------------------------------------

    mscorlib.resources

        Versión del ensamblado: 2.0.0.0

        Versión Win32: 2.0.50727.832 (QFE.050727-8300)

        Código base: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll

    ----------------------------------------

     

    ************** Depuración JIT **************

    Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta

    aplicación o equipo (machine.config) debe tener el

    valor jitDebugging establecido en la sección system.windows.forms.

    La aplicación también se debe compilar con la depuración

    habilitada

     

    Por ejemplo:

     

    <configuration>

        <system.windows.forms jitDebugging="true" />

    </configuration>

     

    Cuando esté habilitada la depuración JIT, cualquier excepción no controlada

    se enviará al depurador JIT registrado en el equipo

    en lugar de controlarlo mediante el cuadro de diálogo.

     

     

    martes, 8 de noviembre de 2011 16:45
  • el mensaje que interesa es

    Error al convertir el tipo de datos varchar a numeric.

    ese es el error concreto que obtienes, segun parece este se produce en una query

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    martes, 8 de noviembre de 2011 17:11
  • TIENES RAZON SERA ESTA TONTO QUE SO T_T 

     

     

    esta
            Dim cmd3 As New SqlCommand("select nombre from proveedor where cod_proveedor= 20522423808", cn)
            cn.Open()
    
    por esta ?? 
            Dim cmd3 As New SqlCommand("select nombre from proveedor where cod_proveedor= '20522423808' ", cn)
            cn.Open()

    osea con comillas simples??
    lo pruebo y si es perdon por hacerte perder el tiempo.
    muchas gracias  ahora comento

    • Marcado como respuesta inbetweener miércoles, 9 de noviembre de 2011 15:09
    martes, 8 de noviembre de 2011 17:15
  • si era el problema de las comillas !! pero ahora como en seven no ocurria lo mismo que en xp que los diferencia ?

    y de nuevo gracias leandro .

    martes, 8 de noviembre de 2011 17:31
  • Puede ser una tonteria pero quizas la versión de la base de datos o la definciión de un pc a otro no sea la misma. Ya has mirado que la base de datos q tiras en el w7 sea la misma sin modificar que tiras en XP, y si lo són la versión servidor de SQL en w7 es la misma que en el de xp.
    miércoles, 9 de noviembre de 2011 16:21