el Guille, la Web del Visual Basic, C#, .NET y más...

El código completo del ejemplo de SQL Server para Visual Basic 2005 o superior

 
Publicado el 26/May/2008
Actualizado el 26/May/2008
Autor: Guillermo 'guille' Som

El código completo de los ejemplos de las instrucciones INSERT, UPDATE y DELETE para Visual Basic 2005 o superior para usar con bases de datos de SQL Server.



 

Introducción:

Aquí tienes el código completo para Visual Basic 2005 o superior y usando una base de datos de SQL Server.

Para insertar los datos, te lo muestro de dos formas: usando un objeto SqlCommand y un SqlDataAdapter.

 

Recuerda que los datos están en una base de datos de SQL Server que está en la instancia SQLEXPRESS del equipo local.
Para más info sobre la base de datos de ejemplo, ver: Estructura de la tabla de ejemplo.

 

Para usar esta clase, puedes usar el siguiente código:

Module Module1

    Sub Main()
        ejemploSQL()

        Console.ReadLine()
    End Sub

    Sub ejemploSQL()
        Dim sql As New AccesoDatosSQL

        Dim t As Integer = sql.TotalRegistros()
        Console.WriteLine("El total de registros es: {0}", t)
        Console.WriteLine()

        Dim id As Integer

        ' Usando un command
        id = sql.Insertar("Guillermo", "Som", _
                          "[email protected]", DateTime.Now, _
                          "Prueba de insertar datos " & t + 1)
        Console.WriteLine("El nuevo ID es: {0}", id)

        ' Usando un dataAdapter
        'id = sql.InsertarAdapter("Guillermo", "Som", _
        '                         "[email protected]", DateTime.Now, _
        '                         "Prueba de insertar datos " & t + 1)
        'Console.WriteLine("El nuevo ID es: {0}", id)

        ' Actualizar el ID 2
        id = 2
        sql.Actualizar(id, "Guillermo nº" & id, "Som", _
                       "[email protected]", DateTime.Now)

    End Sub
End Module

 

'------------------------------------------------------------------------------
' Instrucciones SQL desde ADO.NET con Visual Basic y SQL Server     (25/May/08)
'
' ©Guillermo 'guille' Som, 2008
'------------------------------------------------------------------------------
Option Strict On

Imports Microsoft.VisualBasic
Imports System

Imports System.Data
Imports System.Data.SqlClient

Public Class AccesoDatosSQL
    Public NombreTabla As String = "Tabla1"

    Public Function CadenaConexion() As String
        Dim csb As New SqlConnectionStringBuilder
        csb.DataSource = "(local)\SQLEXPRESS"
        csb.InitialCatalog = "prueba_SQL"
        csb.IntegratedSecurity = True

        Return csb.ConnectionString
    End Function

    Public Function Insertar(ByVal nombre As String, _
                             ByVal apellidos As String, _
                             ByVal email As String, _
                             ByVal fecha As DateTime, _
                             ByVal descripcion As String) As Integer
        Dim sCon As String = CadenaConexion()
        Dim sel As String

        sel = "INSERT INTO " & NombreTabla & _
            "(Nombre, Apellidos, Email, Fecha, Descripcion) " & _
            "VALUES " & _
            "(@Nombre, @Apellidos, @Email, @Fecha, @Descripcion) " & _
            "SELECT @@Identity"

        Using con As New SqlConnection(sCon)
            Dim cmd As New SqlCommand(sel, con)
            cmd.Parameters.AddWithValue("@Nombre", nombre)
            cmd.Parameters.AddWithValue("@Apellidos", apellidos)
            cmd.Parameters.AddWithValue("@Email", email)
            cmd.Parameters.AddWithValue("@Fecha", fecha)
            cmd.Parameters.AddWithValue("@Descripcion", descripcion)
            con.Open()
            Dim t As Integer = CInt(cmd.ExecuteScalar())
            con.Close()
            Return t
        End Using
    End Function

    Public Function InsertarAdapter(ByVal nombre As String, _
                                    ByVal apellidos As String, _
                                    ByVal email As String, _
                                    ByVal fecha As DateTime, _
                                    ByVal descripcion As String) As Integer
        Dim sCon As String = CadenaConexion()
        Dim sel As String

        ' Usando un DataAdapter
        sel = "SELECT * FROM " & NombreTabla
        Dim da As New SqlDataAdapter(sel, sCon)
        da.MissingSchemaAction = MissingSchemaAction.AddWithKey
        Dim cb As New SqlCommandBuilder(da)
        Dim dt As New DataTable

        da.Fill(dt)

        Dim dr As DataRow = dt.NewRow
        dr("Nombre") = nombre
        dr("Apellidos") = apellidos
        dr("Email") = email
        dr("Fecha") = fecha.ToString("dd/MM/yyyy")
        dr("Descripcion") = descripcion

        dt.Rows.Add(dr)

        da.Update(dt)

        Return CInt(dr("ID"))
    End Function

    Public Sub Eliminar(ByVal id As Integer)
        Dim sCon As String = CadenaConexion()
        Dim sel As String = "DELETE FROM " & NombreTabla & " WHERE ID = @ID"

        Using con As New SqlConnection(sCon)
            Dim cmd As New SqlCommand(sel, con)
            cmd.Parameters.AddWithValue("@ID", id)

            con.Open()

            cmd.ExecuteNonQuery()

            con.Close()
        End Using
    End Sub

    Public Sub Actualizar(ByVal id As Integer, _
                          ByVal nombre As String, _
                          ByVal apellidos As String, _
                          ByVal email As String, _
                          ByVal fecha As DateTime)
        Dim sCon As String = CadenaConexion()
        Dim sel As String

        sel = "UPDATE " & NombreTabla & _
            " SET Nombre = @Nombre, Apellidos = @Apellidos, Email = @Email, Fecha = @Fecha" & _
            " WHERE ID = @ID"

        Using con As New SqlConnection(sCon)
            Dim cmd As New SqlCommand(sel, con)
            cmd.Parameters.AddWithValue("@ID", id)
            cmd.Parameters.AddWithValue("@Nombre", nombre)
            cmd.Parameters.AddWithValue("@Apellidos", apellidos)
            cmd.Parameters.AddWithValue("@Email", email)
            cmd.Parameters.AddWithValue("@Fecha", fecha)

            con.Open()
            Dim t As Integer = cmd.ExecuteNonQuery()
            con.Close()

            Console.WriteLine("Filas actualizadas: {0}", t)
        End Using
    End Sub

    Public Function TotalRegistros() As Integer
        Dim sCon As String = CadenaConexion()
        Dim sel As String = "SELECT COUNT(*) FROM " & NombreTabla

        Using con As New SqlConnection(sCon)
            Dim cmd As New SqlCommand(sel, con)
            con.Open()

            Dim t As Integer = CInt(cmd.ExecuteScalar())

            con.Close()

            Return t
        End Using
    End Function
End Class

 

Espero que te sea de utilidad y si quieres ver otros ejemplos del resto de comandos, puedes hacerlo desde:
Instrucciones SQL desde ADO.NET.

Nos vemos.
Guillermo

 


Espacios de nombres usados en el código de este artículo:

System.Data.SqlClient
 



 


La fecha/hora en el servidor es: 22/12/2024 22:56:26

La fecha actual GMT (UTC) es: 

©Guillermo 'guille' Som, 1996-2024