Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: Filantropo en 27 Marzo 2020, 04:12 AM

Título: ¿como obtener resultado de instruccion sql ejecutada desde vb.net?
Publicado por: Filantropo en 27 Marzo 2020, 04:12 AM
Utilizo la clase system.Data.sqlClient desde una app de vb.net y se conecta a una bd que se encuentra en sql server 2012
como podria mi app obtener un valor de retorno de las operaciones sql realizadas? Algo parecido a:


Borrado = BorrarRegistro (idcliente)
If borrado then
  Msgbox "borrado correctamente"
Else
  Msgbox "no se pudo.borrar"
End if


Tambien seria util conocer detalles adicional de ese resultado parecido a GetLastError:


Inser = InsertarCliente (nomb, apell)
If insert then
 Msgbox "insertado correctamente"
Else
 Select case GetlLastErrorSql()
      Case PK_YA_EXISTE
           Msgbox "ya existe el cliente"
     Case UNIQ_YA_EXISTE
           Msgbox "hay un valor duplicado"
     Case FK_ERROR
           Msgbox "clave foranea incorrecta"
     ........





Borrado = BorrarRegistro (1)
If borrado then
  Msgbox "borrado correctamente"
Else
 
  Select Case GetLastErrorSql ()
       Case FORE_KEY
          Msgbox "No se pudo borrar porque hay un registro vinculado a este"
       Case ..............
End if

Título: Re: ¿como obtener resultado de instruccion sql ejecutada desde vb.net?
Publicado por: kub0x en 27 Marzo 2020, 12:10 PM
Hola,

el método ExecuteNonQuery devuelve un entero que especifica el número de filas afectadas por la sentencia. En caso de existir un error, se genera un objeto del tipo SqlException (necesitas try-catch) el cual tiene toda la información necesaria para determinar la causa del error https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlexception?view=netframework-4.8

Saludos.
Título: Re: ¿como obtener resultado de instruccion sql ejecutada desde vb.net?
Publicado por: Filantropo en 28 Marzo 2020, 22:41 PM
Cita de: kub0x en 27 Marzo 2020, 12:10 PM
Hola,

el método ExecuteNonQuery devuelve un entero que especifica el número de filas afectadas por la sentencia. En caso de existir un error, se genera un objeto del tipo SqlException (necesitas try-catch) el cual tiene toda la información necesaria para determinar la causa del error https://docs.microsoft.com/en-us/dotnet/api/system.data.sqlclient.sqlexception?view=netframework-4.8

Saludos.

Gracias eso era.