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:
Añadimos un nuevo inicio de sesión
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-