Conexión a una base de datos SqlServer con VB.net

En este post voy a explicar como realizar una conexión a una base de datos SqlServer con VB.net mediante OleDb.

Base de datos SqlServer

Microsoft SQL Server es un sistema para la gestión de bases de datos producido por Microsoft basado en el modelo relacional.  Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes sistemas gestores de bases de datos como son Oracle, PostgreSQL o MySQL.

Para poder realizar una conexión desde VB.net, debemos de preparar la base de datos con un usuario y contraseña y asignarle los privilegios necesarios. Desde “SQL Server Management Studio” podemos realizar esta tarea de una manera fácil y sencilla.

Abrimos “SQL Server Management Studio”  y una vez conectado al servidor añadimos un nuevo inicio de sesión, utilizamos la “Autenticacion de SqlServer”, en base de datos predeterminada seleccionamos la base de datos que queramos conectarnos, también definimos los permisos a la base de datos que utilizaremos en la conexión:

sqlserver-nuevo-inicio-sesion

Añadimos un nuevo inicio de sesión

permisos-base-datos-sqlserver

Definimos los permisos que tendrá el nuevo usuario sobre la base de datos

Una vez aceptados los cambios ya tendremos listo el nuevo usuario para realizar la conexión a la base de datos.

Conexión a una base de datos SqlServer con VB.net

En primer lugar debemos realizar las importaciones de las clases que necesitamos para realizar la conexión a una base de datos SqlServer con VB.net:

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

Definimos la conexion a la base de datos con el nombre del servidor, la base de datos y el usuari y la contraseña que hemos definido en sqlServer:

myConnectionString = "Provider=sqloledb;" & _
                     "Data Source=localhost;" & _
                     "Initial Catalog=bd-gaSQL;" & _
                     "User Id=UserPrueva;Password=contraseñaPrueva"

Vamos a realizar una consulta a la base de datos mediante un “Select”, la lectura de los datos de la consulta los leemos con el OleDbDataReader:

        Try
            Dim s As String = ("SELECT * FROM Alumnes")
            connexio = New OleDbConnection(myConnectionString)
            myCommand = New OleDbCommand(s)
            myCommand.Connection = connexio
            connexio.Open()
            Dim myReader As OleDbDataReader = myCommand.ExecuteReader()
            While myReader.Read()
                Dim NOM As String = myReader("NOM")
                Dim COGNOM As String = myReader("COGNOM")
            End While
        Catch exc As Exception
            Throw New GestorExcepcio(exc.Message)
        End Try

Para añadir un nuevo registro lo podemos hacer mediante “Insert”:

        Try
            Dim sent As String = ("INSERT INTO Alumnes VALUES ('JORDI','NAVES')")
            Dim connexio As New OleDbConnection(myConnectionString)
            myCommand = New OleDbCommand(sent)
            myCommand.Connection = connexio
            connexio.Open()
            myCommand.ExecuteNonQuery()
            connexio.Close()
        Catch exc As Exception
            Throw New GestorExcepcio(exc.Message)
        End Try

Y finalmente para modificar un registro mediante un “update”:

        Try
            Dim s As String = ("UPDATE Alumnes SET nom='JORDI' Where id=1")
            connexio = New OleDbConnection(myConnectionString)
            myCommand = New OleDbCommand(s)
            myCommand.Connection = connexio
            connexio.Open()
            myCommand.ExecuteNonQuery()
            connexio.Close()
        Catch exc As Exception
            Throw New GestorExcepcio(exc.Message)
        End Try

En conclusión, una manera muy sencilla de establecer una comunicación entre SqlServer y Vb.net de una manera rápida y eficaz-