Foro de elhacker.net

Programación => .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:

Código:
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:

Código:
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"
      ........



Código:
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
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.