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

Mostrar error al tratar de borrar un registro en otra tabla!

Estas en el tema de Mostrar error al tratar de borrar un registro en otra tabla! en el foro de .NET en Foros del Web. De echo lo modifique como SqlClient.SqlParameter ya que lo habia puesto como SqlParameter e igual me indica que no esta definida y lo corro y ...

  #31 (permalink)  
Antiguo 12/02/2013, 08:40
 
Fecha de Ingreso: enero-2013
Mensajes: 93
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

De echo lo modifique como SqlClient.SqlParameter ya que lo habia puesto como SqlParameter e igual me indica que no esta definida y lo corro y me muestra este error:
Código vb:
Ver original
  1. rv = cmd.ExecuteScalar().ToString() Procedure or Function 'sp_borra_t_competencia' expects parameter '@id', which was not supplied.
Gracias por tu tiempo y disculpa si te desespero!
  #32 (permalink)  
Antiguo 12/02/2013, 08:53
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 9 meses
Puntos: 267
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

Tu variable id supongo que es tipo Int32, cierto? porque la variable que recibe en el procedure esta declarada como int.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #33 (permalink)  
Antiguo 12/02/2013, 09:02
 
Fecha de Ingreso: enero-2013
Mensajes: 93
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

Si te muestro mis variables en SQL:
Código SQL:
Ver original
  1. ID  INT Unchecked
  2. Competencia nvarchar(50)    Unchecked
  3. Zona    INT Unchecked

De echo declaro mi variable ID antes del codigo del boton borrar:

Código vb:
Ver original
  1. Dim id as integer
  2.  conexion = New SqlClient.SqlConnection("server=jromeuwxp;database=soriana;Integrated Security=True")

Y al momento de borrar me marca en la linea:

Código vb:
Ver original
  1. rv = cmd.ExecuteScalar().ToString()
Referencia a objeto no establecida como instancia de un objeto.

Última edición por davidalonsso05; 12/02/2013 a las 09:31
  #34 (permalink)  
Antiguo 12/02/2013, 11:10
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 9 meses
Puntos: 267
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

ya vi el error.. está clarisimo en tu código del evento del boton :
Código vb:
Ver original
  1. Dim id As Integer
  2.         conexion = New SqlClient.SqlConnection("server=jromeuwxp;database=soriana;Integrated Security=True")
  3.         Using cmd As New SqlClient.SqlCommand("sp_borra_t_competencia", conexion)
  4.  
  5.             cmd.CommandType = CommandType.StoredProcedure
  6.             cmd.Parameters.Add(New SqlClient.SqlParameter("@id", SqlDbType.Int))
  7.             cmd.Parameters("@id").Direction = ParameterDirection.Input
  8.             cmd.Parameters("@id").Value = id
  9.  
  10.             Dim rv As String
  11.  
  12.             conexion.Open()
  13.  
  14.             rv = cmd.ExecuteScalar().ToString()
  15.  
  16.  
  17.             conexion.Close()
  18.  
  19.             If (Convert.ToInt32(rv) > 0) Then
  20.                 MessageBox.Show("El registro no se puede borrar, ya que cuenta con relacion")
  21.  
  22.             Else
  23.  
  24.                 MessageBox.Show("El registro ya no existe")
  25.  
  26.             End If
  27.         End Using
si te das cuenta en la primera línea declaras tu variable id, pero no le pasas ningun valor dentro de ese evento para pasarlo luego al procedure, e ahí tu error. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #35 (permalink)  
Antiguo 12/02/2013, 11:39
 
Fecha de Ingreso: enero-2013
Mensajes: 93
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

No se supone que mediante el SP lo toma automaticamente?
No entiendo muy bien
  #36 (permalink)  
Antiguo 12/02/2013, 12:07
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 9 meses
Puntos: 267
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

ok en una rato vengo(1H. aprox.), voy de almuerzo.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #37 (permalink)  
Antiguo 12/02/2013, 13:17
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 9 meses
Puntos: 267
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

en vez de rv = cmd.ExecuteScalar().ToString() dejalo como :
Código vb:
Ver original
  1. rv = cmd.ExecuteScalar()
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #38 (permalink)  
Antiguo 13/02/2013, 09:58
 
Fecha de Ingreso: enero-2013
Mensajes: 93
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

Disculpa voy llegando al trabajo, ya lo copie y lo ejecuto y no me marca error solo me dice: MessageBox.Show("El registro ya no existe")
Pero no borra el registro exista o no en la otra tabla...

Gracias de ante mano por este tiempo!!
  #39 (permalink)  
Antiguo 13/02/2013, 10:12
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 9 meses
Puntos: 267
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

No te borra porque como te dije antes no le pasas un valor a tu variable id.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #40 (permalink)  
Antiguo 15/02/2013, 10:33
 
Fecha de Ingreso: enero-2013
Mensajes: 93
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

Disculpa Aquaventus por no responder antes lo que sucede es que mi jefe me dijo que primero hiciera un SP (SQL) donde al ejecutarlo me muestre "los mensajes de error" en forma de "tabla (select)" mira te pongo el SP:

Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[sp_Borra_Competencia]
  2. (@id INT)
  3. AS
  4. DELETE FROM  T_Competencia
  5. WHERE ID=@id AND ID  NOT IN (SELECT DISTINCT id_competencia FROM t_gruporelacion)
  6.  
  7. IF @@rowcount > 0
  8. BEGIN
  9. SELECT 'Mensaje'='Se borro la tienda con ID ' + CONVERT(VARCHAR(10),@id)
  10. END
  11. ELSE IF @ID NOT IN(SELECT ID FROM T_Competencia)
  12. SELECT 'Mensaje'='La tienda no existe'
  13. ELSE
  14.  
  15. SELECT 'Mensaje'='Error: La tienda tiene relacion con ID ' + CONVERT(VARCHAR(10),@id)

Ahora una vez realizado quiere que lo ponga en el codigo de VB y que lo haga funcionar
  #41 (permalink)  
Antiguo 20/02/2013, 10:54
 
Fecha de Ingreso: enero-2013
Mensajes: 93
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Mostrar error al tratar de borrar un registro en otra tabla!

Ya pude, la respuesta era:

Store Procedure en SQL:

Código SQL:
Ver original
  1. ALTER PROCEDURE [dbo].[sp_Borra_Competencia]
  2. (@id INT)
  3. AS
  4. DELETE FROM  T_Competencia
  5. WHERE ID=@id AND ID  NOT IN (SELECT DISTINCT id_competencia FROM t_gruporelacion)
  6.  
  7. IF @@rowcount > 0
  8. BEGIN
  9. SELECT 'Mensaje'='Se borro la tienda con ID ' + CONVERT(VARCHAR(10),@id)
  10. END
  11. ELSE IF @ID NOT IN(SELECT ID FROM T_Competencia)
  12. SELECT 'Mensaje'='La tienda no existe'
  13. ELSE
  14.  
  15. SELECT 'Mensaje'='Error: La tienda tiene relacion con ID ' + CONVERT(VARCHAR(10),@id)

Y en VB:

Código vb:
Ver original
  1. id = TextBox4.Text
  2.         res = MessageBox.Show("Desea borrar la tienda?", "Tienda Competencia", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation)
  3.  
  4.         If res = vbYes Then
  5.             sql = " exec sp_Borra_Competencia " + id + ""
  6.             conectar()
  7.             com = New SqlClient.SqlCommand(sql, conexion)
  8.             dr = com.ExecuteReader
  9.             If dr.Read Then
  10.                 MsgBox(dr(0).ToString())
  11.  
  12.  
  13.             End If
  14.         End If
  15.         llenar_grid()

Espero a alguien le pueda servir si ve este post.

Etiquetas: vb
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 20:27.