Mostrando entradas con la etiqueta programación. Mostrar todas las entradas
Mostrando entradas con la etiqueta programación. Mostrar todas las entradas

martes, 10 de junio de 2014

Conectar una base de datos Sql Server con SQLCLIENT con VB.Net

Hola, en esta sección vamos a conectar la tabla "Producto" que se encuentra dentro de una base de datos "Almacen" que se encuentra creada en Sql Server, el código lo crearemos en Visual Basic.Net, y la forma en que nos conectaremos ahora será mediante SqlClient; para esto empezaremos por crear nuestro formulario.

Para esto utilizaremos Visual Studio 2008, y crearemos nuestro formulario, para ello nos vamos a nuestra barra de menú principal de Visual Studio 2008, y seleccionar:
Archivo, seguido de Nuevo Proyecto en seguida les presentará una ventana denominada “Nuevo Proyecto”, en donde en “Tipos de proyecto”, seleccionen el lenguaje con el que trabajaran que en este caso es Visual Basic; al lado se encuentra la sección de Plantillas, seleccione “Aplicación de Windows Forms”, en la parte de abajo donde se indica “Nombre”, capture el nombre que le dará al formulario en este caso le indicaremos “frmProductos” y presionas <Enter>.

Tu formulario se presenta, pero debemos darle una ubicación dentro de nuestro disco duro, por lo tanto seleccionaremos “Archivo”, “Guardar Proyecto”, se presentará una ventana en donde se pondrá el Nombre aunque ya este indicado “frmProductos”, abajo la ubicación en donde presionaremos el botón de comando “Examinar”, le presentará un explorador y seleccionara una carpeta o creara una para poder alojar la solución que va a crear.

El nombre de la solución debe ser el mismo que el nombre de arriba y después presione “Aceptar”. En el área de trabajo se tiene creado el formulario con el nombre de “Form1”, configúrelo dándole un nombre y un tamaño proporcional después seleccione del cuadro de herramientas un botón de comando, una etiqueta Label y un DataGridView.

Haga doble clic en el fondo del formulario y se encontrará en el área de trabajo de código, en donde le presenta una clase denominada “Productos” y que es una clase publica; posicione el cursor al principio de Public Class frmProductos y después teclee <Enter> unas tres o cuatro veces de tal forma que debe de quedar de la siguiente forma

Imports System
Imports System.Data
Imports System.Data.SqlClient


Public Class frmProductos

    Private Sub frmProductos_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub
End Class

Después dentro de Public Class frmProductos, crear la función vsConex en donde creara la variable de conexión, una variable que permita recibir las instrucciones y parámetros como el SqlCommand y el SqlDataAdapter que recibe el SqlCommand construido, lo ejecuta y lo carga a una variable tipo tabla denominada DataSet como se muestra a continuación:

Function vsConex() As DataSet
        Dim oCnn As New SqlConnection("Data Source = DinamicoSys; Persist Security Info =false; Integrated Security = SSPI; User Id= sa; Password =; Initial Catalog = Almacen")
        Dim oCmd As New SqlCommand
        Dim oDa As New SqlDataAdapter
        Dim ds As New DataSet
        Dim strSql As String

        strSql = "Select * from producto"

        Try
            oCnn.Open()
            oCmd = New SqlCommand(strSql, oCnn)
            oCmd.Connection = oCnn
            oDa.SelectCommand = oCmd
            oDa.Fill(ds, "Producto")
            Return ds

        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            oCnn.Close()

        End Try
    End Function

Vea que al formar la conexión se esta creando una variable de conexión

Note que la function presenta un dato que debe regresar pero en este caso lo que regresa es un dataset como resultado, esto quiere decir que regresa un conjunto o grupo de datos de la tabla Productos. Por ello al retornar (Return) le indicamos el nombre de la variable dataset en este caso es “ds”.

Note que el código está encerrado en un Try…Catch por si hay algún error que me proporcione un mensaje de error, después cierra la variable de conexión oCnn.Close().

Ahora veamos el código en el botón denominado “Aceptar”, el código debe de tener una variable dataset para recibir el resultado de la función y la función como tal, seguido de un dataSource que proviene del grid para cargar los datos que se han traido y de esta manera poder mostrarlos.

Private Sub btnAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAceptar.Click
        Dim dsRecibe As New DataSet

        dsRecibe = vsConex()
        dgDatos.DataSource = dsRecibe.Tables("producto")
End Sub

Note la carga que se efectúa en el DataSource del grid dgDatos.


Nos vemos hasta la próxima, espero que este código de ejemplo les sea de utilidad.

domingo, 11 de septiembre de 2011

Conectar una base de datos de Access con Visual Basic.Net

Por: Víctor M. Saldaña Núñez
Sugiero que para las acciones de conexión a una base de datos siempre se realicen mediante una función, ya que de esta manera solo se ejerce la conexión, se efectúa el acceso y se lleva a cabo la solicitud deseada, se realiza en ese momento el proceso y después se cierra la conexión. Si es una consulta la información traída será guardada en una tabla o un DataSet que permitirá ser entregado como resultado de salida para después poder trabajar con la información contenida en cualquier otro evento que así se indique o se necesite, veamos el siguiente ejemplo:
En declaraciones generales poner:
 Imports System
 Imports System.Data
 Imports System.Data.OleDb
 Imports System.Windows.Forms

Después crear la siguiente función que permitirá traer un conjunto de registros:

Function clsLlenaCombo(ByVal pstrTipo As String, ByVal pstrSql As String, ByVal pNomTabla As String) As DataSet
        Dim oCnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\Sicso\DbSicso\practica.mdb;Jet OLEDB:Database Password=IS345ABV;")
        Dim dsDatos As New DataSet

        Try
            oCnn.Open()
            If pstrTipo = "CargaDatos" Then
                Dim oCmd As New OleDbDataAdapter(pstrSql, oCnn)
                oCmd.Fill(dsDatos, pNomTabla)
            End If

        Catch ex As Exception
            Throw New Exception(ex.Message)
        Finally
            oCnn.Close()
            oCnn.Dispose()
            oCnn = Nothing
        End Try

        clsLlenaCombo = dsDatos

End Function
Y cargar los datos en un evento en el que podría encontrarse el siguiente código:
Dim dsEnt As DataSet
      Dim strSql As String

'*** Carga combo de Entidad
        strSql = "Select vEnt_Cve, vEnt_NombreEnt from sicso_Entidad"
        dsEnt = clsPrin.clsLlenaCombo("CargaDatos", strSql, "Entidad")
        cboEnt.DataSource = dsEnt.Tables("Entidad")
        cboEnt.DisplayMember = dsEnt.Tables("Entidad").Columns(1).ToString
        cboEnt.ValueMember = dsEnt.Tables("Entidad").Columns(0).ToString

o en su defecto si se desea traer solo los datos de un registro o un en su defecto un dato en especial podrá efectuarlo de la siguiente manera:
Function vsBuscador(ByVal pstrCadena As String, ByVal pstrClave As String) As Boolean
        Dim Ocnn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Sicso\DbSicso\practica.mdb;Jet OLEDB:Database Password= IS345ABV;")
        Dim Ocmd As New OleDbCommand
        Dim strCad As String
        Dim blnResultado As Boolean
        Try
            strCad = pstrCadena & pstrClave & "'"
            Ocmd = New OleDbCommand(strCad, Ocnn)
            Ocnn.Open()
            blnResultado = Ocmd.ExecuteScalar
            Return blnResultado

        Catch ex As Exception
            Throw New Exception(ex.Message)

        End Try
Y cargar los datos en un evento en el que podría encontrarse el siguiente código:
Public Function vsVerificaDatos(ByVal pOpcion As String, ByVal pstrUsuario As String, ByVal pstrContrasena As String) As String

Dim oCmd As New OleDbCommand
Dim strVerifica As String
Dim strSql As String

If pOpcion = "TraeUsuario" Then
strSql = "Select vUsua_NomEmp From Sicso_Usuario "
strSql = strSql & "Where vUsua_Nombre ='" & pstrUsuario & "' and "
strSql = strSql & "vUsua_Contrasena = '" & pstrContrasena & "'"
oCmd = New OleDbCommand(strSql, oCnn)
Else
            strVerifica = ""
End If
oCnn.Open()
strVerifica = oCmd.ExecuteScalar
vsVerificaDatos = strVerifica
End Function