Ir al contenido principal

Clase para el manejo de instrucciones Sql Server

Data Access Using SqlClient


'Con esta clase se pueden ejecutar sentencias de Select, Update, Insert, Detele
Imports System.Data.SqlClient
Public Class DataLayer
Private ConexionStr As String = "Data Source=SERVIDOR\sqlexpress;Initial Catalog=dbAsVentas;Integrated Security=True"
Private strSQL As String

Public Property ConexionString() As String
Get
Return ConexionStr
End Get

Set(ByVal value As String)
ConexionStr = value
End Set
End Property

'''


''' Ejecuta Comandos de Update, Insert, Delete
''' Instruccion SQL que se ejecutara
'''

Public Function SaveData(ByVal SqlInstrucction As String) As Boolean
Dim oConexion As New SqlConnection(ConexionStr)
Dim oComand As SqlCommand
Try
oConexion.Open()
oComand = New SqlCommand(SqlInstrucction, oConexion)
oComand.ExecuteNonQuery()

oConexion.Close()
oConexion.Dispose()
oComand.Dispose()

Return True
Catch ex As Exception 'Error si la conexion falla
MsgBox(ex.Message)
Return False
End Try
End Function

'''


''' Pone los datos recuperados por una Instruccion SQL string en un DataTable
''' Instruccion SQL que se ejecutara
'''

Public Function GetData(ByVal SqlInstrucction As String) As DataTable
Dim oConexion As SqlConnection = New SqlConnection(ConexionStr)
Dim oComannd As SqlCommand
Dim oAdapter As New SqlDataAdapter
Dim dt As New DataTable

Try
oConexion.Open()
oComannd = New SqlCommand(SqlInstrucction, oConexion)
oAdapter.SelectCommand = oComannd
oAdapter.Fill(dt)

oAdapter.Dispose()
oConexion.Close()
oConexion.Dispose()
oComannd.Dispose()
Catch ex As Exception
MsgBox(ex.Message)
End Try
Return dt
End Function


'''


''' Retorna el valor de la Primera columna de la Instruccion SQL que se ejecutada
''' Instruccion SQL que se ejecutara
''' Indica si El Valor Esperado es Numerio
'''

Public Function GetDbValue(ByVal SqlInstrucction As String, Optional ByVal Numerico As Boolean = False) As Object
Dim oConexion As New SqlConnection(ConexionStr)
Dim oComand As SqlCommand
Dim ValorRetorno As Object = ""

Try
oConexion.Open()
oComand = New SqlCommand(SqlInstrucction, oConexion)
ValorRetorno = oComand.ExecuteScalar()

oConexion.Close()
oConexion.Dispose()
oComand.Dispose()

Catch ex As Exception 'Error si la conexion falla
MsgBox(ex.Message)
End Try

ValorRetorno = ValorRetorno.ToString

If Numerico Then
ValorRetorno = IIf(ValorRetorno.ToString = "", 0, ValorRetorno)
ValorRetorno = Format(ValorRetorno * 1, "###,###,###0.0")
End If

Return ValorRetorno

End Function

End Class

Comentarios

Entradas populares de este blog

De Coverlet a JaCoCo: Trayendo la magia de la cobertura a Android Studio

Todo comenzó un día cualquiera, mientras revisaba un reporte de cobertura de pruebas generado por Coverlet para un proyecto en .NET. Me quedé fascinado por el nivel de detalle y claridad que proporcionaba: saber exactamente qué partes del código estaban cubiertas por las pruebas, y cuáles no. Fue entonces cuando me pregunté: ¿Y si pudiera tener algo así en mi proyecto de Android con Kotlin y Jetpack Compose? La Chispa Inicial ✨ Como desarrollador, siempre busco mejorar la calidad de mi código, y contar con herramientas que me permitan medir la cobertura de pruebas es clave. Después de una rápida búsqueda, me topé con **JaCoCo**, una herramienta muy popular para medir cobertura de código en proyectos Java y Kotlin. ¡Lo mejor de todo es que es compatible con Android Studio! Mi objetivo estaba claro: debía integrar JaCoCo en mi proyecto de Android para tener reportes detallados de cobertura, tal como lo había visto en Coverlet. El Desafío: Configurar JaCoCo en un Proyecto Android 🛠️ El p...

Inyección de Dependencias usando Hilt

Inyección de Dependencias usando Hilt La Inyección de Dependencias (DI) es fundamental para construir aplicaciones Android robustas, escalables y fáciles de testear. Mientras que existen varias librerías para lograrlo, Hilt se ha establecido como la solución recomendada y estándar de Google. Construido sobre la potencia de Dagger, Hilt simplifica enormemente la implementación de DI en Android. Si buscas una forma estandarizada, con menos boilerplate que Dagger puro y con excelente integración con los componentes de Android Jetpack, Hilt es la respuesta. ¡Descubramos cómo funciona! ¿Por qué elegir Hilt? Hilt ofrece ventajas significativas para el desarrollo Android: Estándar de Android: Es la librería DI recomendada por Google, lo que asegura buena documentación, soporte y alineación con las prácticas modernas de Android. Menos Boilerplate (vs. Dagger): Reduce drásticamente el código de configuración necesario en comparación con usar Dagger directamente en Andr...

Usando Retrofit para Consumir API

Usando Retrofit para Consumir API La comunicación con servicios web y APIs REST es fundamental en el desarrollo Android. Retrofit simplifica las llamadas de red, Coroutines manejan la asincronía, y un patrón Repositorio/ViewModel estructura el acceso a datos y la lógica de negocio. Para la UI, Jetpack Compose ofrece un enfoque moderno y declarativo para construir interfaces de usuario nativas con Kotlin. En este post, construiremos una app que muestra la lista de repositorios públicos del usuario de GitHub enelramon . Utilizaremos Retrofit para la llamada a la API, un Repositorio para abstraer la fuente de datos, un ViewModel con StateFlow para gestionar el estado, y Jetpack Compose para dibujar la interfaz de usuario de forma reactiva. ¿Por qué Retrofit, Repositorio, ViewModel y Jetpack Compose? Retrofit: Simplifica las llamadas HTTP, maneja la conversión de JSON y se integra perfectamente con Coroutines. Repositorio: Abstrae la fuente de datos (red). M...