Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / .Net / Base de Datos / Firebird / Proyectos / Visual Basic / Proyecto de base de datos Firebird VB

Proyecto de base de datos Firebird VB

Autor jc mouse sábado, mayo 5, 2012

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas.

¿Que necesitamos?

  • Visual Studio 2008 o superior
  • Firebird última versión
  • Firebird ADO.NET Data Provider.
  • Conocimientos básicos de Visual Basic y lenguaje SQL
  • Una base de datos de firebird creada en nuestra PC (*.fdb)
Nivel: Novato-Intermedio
Tiempo: 20 minutos

1. La base de datos, necesitamos una base de datos firebird (Nombre: dbuniv.fdb), debes crearla y añadir una tabla (Tabla: universitario), si no sabes como, pásate por este otro tutorial (Firebird iSQL).

CREATE TABLE universitario(
	id varchar(8) primary key,
	nombre varchar(60),
	mail varchar(60)
);

Nuestro proyecto consta de tan solo una tabla y tres campos de tipo texto, esto para simplificar las cosas 🙂

2. Crea una nueva aplicación en Visual Studio de tipo Windows Form Aplication, el form que te crea por defecto renombralo a interfaz.vb, después para crear la GUI añade los siguientes controles:

gui visual studio project

OJO: Los nombres de los controles son importantes

3. Referencia a Firebird: Añade la referencia al DLL de Firebird (FirebirdSql.Data.FirebirdClient.dll) , para ello, clic derecho sobre el proyecto y elegies «Add references…», despues buscas la libreria en tu PC.

4. Añade una nueva clase (Clase: DBData.vb), en esta clase es donde colocaremos las funciones de gestión con la base de datos firebird. El código de la clase es:

Imports FirebirdSql.Data.FirebirdClient

Public Class DBData

    Dim Conexion As New FbConnection
    Dim fb_string As FbConnectionStringBuilder = New FbConnectionStringBuilder

    Public Sub conectar()
        ' Se forma la cadena de conexion
        fb_string.ServerType = FbServerType.Default
        fb_string.UserID = "sysdba"
        fb_string.Password = "masterkey"
        fb_string.Dialect = 3
        'ubicacion de la base de datos de firebird
        fb_string.Database = "e:\firebird_db\dbuniv.fdb"
        fb_string.Pooling = False
        ' se realiza la conexion
        Try
            Conexion.ConnectionString = fb_string.ToString
            Conexion.Open()
            If Conexion.State = ConnectionState.Open Then
                Console.WriteLine("Conexión a [" & fb_string.Database & "] establecida")
            End If
        Catch err As FbException
            Console.WriteLine("Error: No se pudo realizar la conexión a [" & fb_string.Database & "]")
            Console.WriteLine(err.Message)
        End Try

    End Sub

    Public Sub Desconectar()
        'si existe conexion abierta, la cierra
        If (ConnectionState.Open) Then
            Conexion.Close()
            Console.WriteLine("Conexión a [" & fb_string.Database & "] cerrada")
        End If
    End Sub

    'realiza una consulta a la base de datos y llena los datos obtenidos en el DataTable
    Public Sub load_data(ByVal dt As DataTable)
        Dim sql As String = "SELECT id,nombre, mail FROM universitario"
        Dim cmd As New FbCommand(sql, Conexion)
        Dim fbdatareader As FbDataReader = cmd.ExecuteReader
        While (fbdatareader.Read)
            Dim s(2) As String
            s(0) = fbdatareader.GetString(0) ' dni
            s(1) = fbdatareader.GetString(1) ' nombre
            s(2) = fbdatareader.GetString(2) 'mail
            dt.Rows.Add(s)
        End While
    End Sub

    'Ejecuta la instruccion INSERT 
    Public Sub insert(ByVal dni As String, ByVal nombre As String, ByVal mail As String)
        Try
            Dim sql As String = "INSERT INTO universitario(id,nombre,mail) " & _
                                "VALUES('" & dni & "','" & nombre & "','" & mail & "')"
            Dim cmd As New FbCommand(sql, Conexion)
            cmd.ExecuteNonQuery()
            cmd = Nothing
        Catch ex As Exception
            Console.WriteLine("Error no se puede ejecutar la instruccion INSERT.")
        End Try

    End Sub

    'Ejecuta la instruccion UPDATE
    Public Sub update(ByVal dni As String, ByVal nombre As String, ByVal mail As String)
        Dim sql As String = "UPDATE universitario SET nombre ='" & nombre & "' , mail='" & mail & "'" & _
                            " WHERE id='" & dni & "' "
        Dim cmd As New FbCommand(sql, Conexion)
        cmd.ExecuteNonQuery()
        cmd = Nothing
    End Sub

    'Ejecuta la instruccion DELETE
    Public Sub delete(ByVal value As String)
        Dim sql As String = "DELETE FROM universitario WHERE id = '" & value & "' "
        Dim cmd As New FbCommand(sql, Conexion)
        cmd.ExecuteNonQuery()
        cmd = Nothing
    End Sub
End Class

Importante: Si añadiste la referencia a Firebird no debe mostrarte ningún error, sin embargo si esto sucediera, fíjate en la versión de la librería de firebird y de la versión de Microsoft .NET Framework que está instalada en tu pc, en la pagina de firebird hay varias versiones pada cada uno de ellos, descarga la indicada para tu caso.

En el c0nstructor de la clase, es donde especificamos los datos de conexión, el único cambio que debes realizar, es cambiar la ruta del archivo de base de datos (fb_string.Database)  por la ruta donde tu hallas guardado tu archivo FDB.

5. Para terminar dirígete al código de la «interfaz.vb» y coloca el siguiente código:

Public Class Interfaz

    Dim data As New DBData
    Dim Tabla As New DataTable

    Public Sub New()
        ' This call is required by the Windows Form Designer.
        InitializeComponent()
        'inicia conexion a la base de datos
        data.conectar()
        ' se inicia tabla y datos
        Tabla.Columns.Add("DNI", System.Type.GetType("System.String"))
        Tabla.Columns.Add("Nombre Completo", System.Type.GetType("System.String"))
        Tabla.Columns.Add("Correo Electronico", System.Type.GetType("System.String"))
        'se cargan los datos 
        Actualizar_Tabla()
    End Sub

    Private Sub cmdRegistrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdRegistrar.Click
        data.insert(txtDNI.Text, txtNombre.Text, txtMail.Text)
        Actualizar_Tabla()
    End Sub

    Private Sub cmdDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdDelete.Click
        ' cantidad de filas seleccionadas
        Dim selectedRowCount As Integer = DGUniv.Rows.GetRowCount(DataGridViewElementStates.Selected)
        If selectedRowCount > 0 Then
            For i = 0 To selectedRowCount - 1
                'obtiene ubicacion de la fila seleccionada
                Dim index As Integer = DGUniv.SelectedRows(i).Index
                'obtiene el contenido de la fila y celda seleccionda
                Dim selectedDNI As String = DGUniv.Rows(index).Cells(0).Value
                data.delete(selectedDNI)
                Console.WriteLine("Registro eliminado: " & selectedDNI)
            Next
        End If
        Actualizar_Tabla()
    End Sub

    Private Sub Actualizar_Tabla()
        Tabla.Clear()
        data.load_data(Tabla)
        DGUniv.DataSource = Tabla
        DGUniv.Columns(0).Width = 70
        DGUniv.Columns(1).Width = 180
        DGUniv.Columns(2).Width = 180
    End Sub

    Private Sub cmdUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdUpdate.Click
        ' cantidad de filas seleccionadas
        Dim selectedRowCount As Integer = DGUniv.Rows.GetRowCount(DataGridViewElementStates.Selected)
        If selectedRowCount = 1 Then
            'obtiene ubicacion de la fila seleccionada
            Dim index As Integer = DGUniv.SelectedRows(0).Index
            'obtiene el contenido de la fila y celda seleccionda
            Dim selectedDNI As String = DGUniv.Rows(index).Cells(0).Value
            data.update(txtDNI.Text, txtNombre.Text, txtMail.Text)
            Console.WriteLine("Actualizar registro: " & selectedDNI)
        End If
        Actualizar_Tabla()
    End Sub

    Private Sub DGUniv_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGUniv.Click
        Dim selectedRowCount As Integer = DGUniv.Rows.GetRowCount(DataGridViewElementStates.Selected)
        If selectedRowCount = 1 Then
            'obtiene ubicacion de la fila seleccionada
            Dim index As Integer = DGUniv.SelectedRows(0).Index
            'Console.WriteLine("registro: " & index)
            'asigna los valores de la fila a los textbox
            txtDNI.Text = DGUniv.Rows(index).Cells(0).Value.ToString
            txtNombre.Text = DGUniv.Rows(index).Cells(1).Value.ToString
            txtMail.Text = DGUniv.Rows(index).Cells(2).Value.ToString
        End If
    End Sub

    Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSalir.Click
        data.Desconectar()
        Application.Exit()
    End Sub
End Class

Muy bien, si no hay errores, ejecuta el proyecto y listo 🙂

Descargate el proyecto en este enlace

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.

Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye

Enjoy! :)

También Te Podría Interesar

Crea un servicio web REST con PHP y MYSQL -Parte 2

Crea un servicio web REST con PHP y MYSQL -Parte 2

Segunda parte del tutorial «Crea un servicio web REST con PHP y MYSQL«, en esta segunda y ultima parte se completara la...

JTable con JCheckBox y celdas NULL

JTable con JCheckBox y celdas NULL

Me llego la siguiente duda por facebook que me pareció interesante: «Se quiere desarrollar una tabla en java que haga us...

HELP ME – Envía un SMS de auxilio con tu ubicación

HELP ME – Envía un SMS de auxilio con tu ubicación

HELP ME, es una aplicación android gratuita que te permite enviar un mensaje de auxilio (S.O.S.) hasta 4 personas que tu...

Evaluar expresiones matemáticas en Java con JavaScript

Evaluar expresiones matemáticas en Java con JavaScript

Java 8 trae consigo una nueva versión del motor de JavaScript llamada Nashorn, este motor introduce mejoras de rendimien...

HSQLDB: Gestor de bases de datos libre en java

HSQLDB: Gestor de bases de datos libre en java

HyperSQL DataBase (HSQLDB) es un moderno administrador de bases de datos relacionales, es portátil e implementado en jav...

Criba de Eratóstenes animado

Criba de Eratóstenes animado

Eratóstenes era un matemático griego del siglo  III a.C. el cual ideó una manera rápida de obtener todos los números pri...

5 comentarios en “Proyecto de base de datos Firebird VB”

  1. jack dice:

    mira lo que pasa es que tengo un error en la parte de la conexion, exactamente aqui
    Dim fbString As FbConnectionStringBuilder =
    New FbConnection

    la ultima parte desde donde comienza New es la que esta resaltada en azul indicandome error
    lo que pasa es que soy nuevo en visual basic y ps me gustaria sabersi me podrias ayudar ahi que podria estar pasando gracias….

    1. Mouse dice:

      ¿Cual es el error?, VS te muestra el tipo de error, para ayudarte necesito saber el tipo de erro 🙂

  2. erhu dice:

    yo tengo un problema con la version 2.7 no sirve en visual 2008 y la version 2.5 no esta declara
    FbConnectionStringBuilder

  3. tyson dice:

    podrias realizarlo con c#

  4. Alan dice:

    Muy bueno, lo estuve buscando hace tiempo.
    Será motivo de aplicarlo.
    ¿Acepta procedimientos almacenados?

Los comentarios estan cerrados

Comparte lo que sabes

Categorias

Últimas entradas

Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...

Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...

En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...

Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...

Herramientas

Generador de Enlaces a Whatsapp