Foros del Web » Programación para mayores de 30 ;) » .NET »

Error Try Catch

Estas en el tema de Error Try Catch en el foro de .NET en Foros del Web. El problema es que cuando apreto el boton que deveria generar el insert me arroja error el cual es capturado por try catch. El procedimiento ...
  #1 (permalink)  
Antiguo 14/04/2007, 18:29
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta Error Try Catch

El problema es que cuando apreto el boton que deveria generar el insert me arroja error el cual es capturado por try catch.
El procedimiento lo probe en el analizador de consulta y anda perfecto , me inserta simultaneamente en las dos tablas pero cuando lo ejecuto desde la aplicacion ,da error.
Tambien probe el procedimiento de forma individuales (uno que me ingresa los datos del cliente y otro que me ingresa los del vendedor) en donde a cada uno le asigno un boton para asi serciorarme que pueda ser y me inserta sin problemas.
Pero cuando de los dos procedimientos hago uno no funciona
¿Estara mal realizado?


aqui el code para ver que puede haber mmalo.

Código:
Dim mi_conec As SqlClient.SqlConnection
        Dim mi_comando As SqlClient.SqlCommand

        Dim resp As DialogResult

        If MessageBox.Show("Los Datos se Grabaran estas Seguro ", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) = DialogResult.Yes Then

            Dim mi_consulta As String = "execute cliente_ingresa_cliente '" & TextBox7.Text.Trim & "','" & TextBox1.Text.Trim & "','" & TextBox2.Text.Trim & "','" & TextBox3.Text.Trim & "','" & ComboBox3.Text.Trim & "','" & TextBox5.Text.Trim & "','" & ComboBox2.Text.Trim & "','" & TextBox10.Text.Trim & "','" & TextBox9.Text.Trim & "',"
            MessageBox.Show(mi_consulta)'para ver que estoy mandando



            Try

                mi_conec = New SqlClient.SqlConnection(cadena_conec)
                mi_comando = New SqlClient.SqlCommand

                mi_conec.Open()

                mi_comando.CommandType = CommandType.Text
                mi_comando.CommandText = mi_consulta
                mi_comando.Connection = mi_conec

                If mi_comando.ExecuteNonQuery Then
                    MessageBox.Show(" Proceso Realizado Exitosamente ", "Ingreso de Datos ", MessageBoxButtons.OK, MessageBoxIcon.Information)

                Else
                    MessageBox.Show("Error En el Ingreso de Datos", "Ingreso De Datos", MessageBoxButtons.OK, MessageBoxIcon.Error)

                End If

            Catch ex As SqlException
                MessageBox.Show("Error de Acceso , es Posible que el codigo del de Pedido ya Exista", "Mantención", MessageBoxButtons.OK, MessageBoxIcon.Error) 'AQUI CAPTURA SIEMPRE EL ERROR , Y NINGUN ID ESTA REPETIDO
            Finally
                If Not mi_comando Is Nothing Then mi_comando.Dispose()
                If Not mi_conec Is Nothing Then mi_conec.Dispose()
            End Try

        Else
            MessageBox.Show("No has Grabado Datos", "Mantención", MessageBoxButtons.OK, MessageBoxIcon.Asterisk)

        End If
y este es el procedimiento ,Los Pk para la tabla cliente es id_cliente y para vendedor id_vendedor

Código:
CREATE  procedure cliente_ingresa_cliente
(
@id_cliente char(3),@nombre_cliente char(12),@apellido_cliente char(12),
@direccion_cliente char(12),@comuna_cliente char(20),
@telefono_cliente char(12),@fpago_cliente char(20),

@id_vendedor char (2),@nombre_vendedor char(12)

)
as
begin

insert into  CLIENTE  
        (
        ID_CLIENTE,NOM_CLIENTE, APELLIDO_CLIENTE,
         DIRECCION_CLIENTE, COMUNA_CLIENTE,
        TELEFONO_CLIENTE,PAGO_CLIENTE
        
        )
values 
	(
               @id_cliente,@nombre_cliente,@apellido_cliente,
	 @direccion_cliente,@comuna_cliente ,
	 @telefono_cliente,@fpago_cliente
	)

insert into VENDEDOR
	(
 	ID_VENDEDOR,NOM_VENDEDOR
	)
	values
	(
 	@id_vendedor,@nombre_vendedor
	)

end
GO

Última edición por Coala; 14/04/2007 a las 18:37 Razón: Es que soy wn
  #2 (permalink)  
Antiguo 14/04/2007, 21:10
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Error Try Catch

Quien me echa una manito .No se que pueda ser
  #3 (permalink)  
Antiguo 15/04/2007, 05:10
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 1 mes
Puntos: 156
Re: Error Try Catch

Cita:
El problema es que cuando apreto el boton que deveria generar el insert me arroja error el cual es capturado por try catch.
podrías poner el error que te aparece?

saludos
  #4 (permalink)  
Antiguo 15/04/2007, 09:13
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Error Try Catch

Mas bien no es un Error ( que se cierre la aplicacion,que no siga ejecutandose y cosas asi) .
El tema Es que Aqui siempres entra , lo he probado con id que no estan en la base de datos y igual entra aca

Cita:
Iniciado por Coala Ver Mensaje
[CODE]

Catch ex As SqlException
MessageBox.Show("Error de Acceso , es Posible que el codigo del de Pedido ya Exista", "Mantención", MessageBoxButtons.OK, MessageBoxIcon.Error) 'AQUI CAPTURA SIEMPRE EL ERROR , Y NINGUN ID ESTA REPETIDO
Finally


  #5 (permalink)  
Antiguo 16/04/2007, 09:24
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Error Try Catch

Por que creas un procedimiento almacenado?, no te es más fácil usar solo los inserts?

[EDIT] Puede ser, ahorita que revise de nuevo tu código lo que estas realizando es crear un nuevo procedimiento almacenado cada que ejecutas esa parte de tu código en VB, en este caso, como ya lo tienes creado, el error que te manda es, supongo, que estas duplicando un procedimiento y no puede ejecutar la acción, lo recomendable en este caso es que tu procedimiento lo llames "EXEC tu_procedimiento" el la parte del CommandText
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.

Última edición por erick_arcini; 16/04/2007 a las 10:04
  #6 (permalink)  
Antiguo 16/04/2007, 10:42
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Error Try Catch

si bien lo puedo realizar con insert por un tema de "no tener tanto codigo amontonado" realizo procedimientos aparte que asi la aplicacion se demora menos en realizar las consulta.

Lo extraño es que esto me pasa solo cuando trato de hacer los insert a las dos tablas.Me explico si le hago el insert solo ingresando los datos de cliente (nombre,apellido,telefono etc) no hay drama y puedo ejecutar ese procedimiento. y cuando hago lo mesmo con el vendedor y inserto su (id y nombre) tampoco drama. Pero cuando trato de hacer un insert para los dos, queda en try catch.

Uffff , nose que es :S
  #7 (permalink)  
Antiguo 16/04/2007, 11:37
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 4 meses
Puntos: 50
Re: Error Try Catch

Puedes poner en tu messagebox lo siguiente:

Código:
MessageBox.Show(ex.Message)
Para saber bien cual es el error.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #8 (permalink)  
Antiguo 16/04/2007, 12:47
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Error Try Catch

Ya lo solucione , revise los procedimientos en el analizador de consulta y no tenia problemas.Entonces me fui al visual y probe todos los procedimientos por separado el que me ingresaba datos de cliente,vendedor y me funcionaban perfecto. Luego probe el que me insertaba en los dos. Y daba error , el error era que al final de los parametros que estaba mandando ("execute PEDIDO_INGRESA_PEDIDO " & TextBox7.Text.Trim & ",'" & TextBox1.Text.Trim & "',..................) estba mandando una maldita "," coma demas .


Uff que tonto fui ,pero ya lo pille

Gracias por la ayuda, se ganaron unas caritas

Última edición por Coala; 16/04/2007 a las 12:56
  #9 (permalink)  
Antiguo 16/04/2007, 12:59
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 10 meses
Puntos: 7
Re: Error Try Catch

Es muy mala idea ejecutar sentencias SQL de esa forma (concatenar valores), ese código es altamente vulnerable a SQL Injection. Lee algún tutorial de ADO.NET para que veas como se debería hacer llamadas a procedimientos almacenados y como usar consultas parametrizadas.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #10 (permalink)  
Antiguo 16/04/2007, 13:27
Avatar de Coala  
Fecha de Ingreso: marzo-2007
Ubicación: Chile/Santiago
Mensajes: 150
Antigüedad: 17 años, 8 meses
Puntos: 0
Re: Error Try Catch

Cita:
Iniciado por xknown Ver Mensaje
Es muy mala idea ejecutar sentencias SQL de esa forma (concatenar valores), ese código es altamente vulnerable a SQL Injection. Lee algún tutorial de ADO.NET para que veas como se debería hacer llamadas a procedimientos almacenados y como usar consultas parametrizadas.

Saludos
Uuuuu, Muy interesante tu sugerencia , Aunque es un formulario windows la aplicacion , deveras tienes mucha razon me puse ah leer un poquitin sobre "SQL Injection" y deveras es vulnerable.Gracias voy ah ver que se puede hacer.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:21.