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?
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:
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
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! :)
Hace un par de años atras google para el aniversario del juego de Pacman saco un doodle en su homenaje, ese doodle que s...
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...
En este tutorial «Android Bolivia» construiremos nuestra propia aplicación para molestar a los amigos con sonidos divert...
En este post dejo el código fuente de un blog en PHP desarrollado siguiendo el patrón de diseño MVC (Modelo, Vista y Con...
JTable es un componente swing java que nos permite mostrar datos en una tabla de una base de datos, sin embargo a difere...
Agregar una imagen a un jpanel o a un jframe no es complicado pero para un programador novato puede convertirse en todo...
Los comentarios estan cerrados
En este post te enseñamos a crear tus imagenes al estilo de Disney Pixar utilizando Inteligencia Artificial de una maner...
El archuivo helpers.php en Laravel contiene funciones globales de PHP los cuales se pueden utilizar en cualquier parte d...
El gigante tecnologico de Google ingresa a la competencia de los ChatBot con Inteligencia Artificial a traves de Bard. B...
uiverse.io es u sitio web para desarrolladores que contiene miles de elementos de interfaz de usuario HTML/CSS creados y...
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….
¿Cual es el error?, VS te muestra el tipo de error, para ayudarte necesito saber el tipo de erro 🙂
yo tengo un problema con la version 2.7 no sirve en visual 2008 y la version 2.5 no esta declara
FbConnectionStringBuilder
podrias realizarlo con c#
Muy bueno, lo estuve buscando hace tiempo.
Será motivo de aplicarlo.
¿Acepta procedimientos almacenados?