100% encontró este documento útil (6 votos)
9K vistas4 páginas

¿Como Obtener Con Visual Basic .NET Las Tablas de Una Base de Datos en SQL Server y Sus Estructuras?

Estructura de base de datos SQL Server con VB .NET, obtener tablas de SQL Server con VB, explorar base de datos con VB, lista de tablas con VB
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (6 votos)
9K vistas4 páginas

¿Como Obtener Con Visual Basic .NET Las Tablas de Una Base de Datos en SQL Server y Sus Estructuras?

Estructura de base de datos SQL Server con VB .NET, obtener tablas de SQL Server con VB, explorar base de datos con VB, lista de tablas con VB
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 4

Página 1 de 4

¿Cómo obtener con Visual Basic .NET las tablas de una base de
datos en SQL Server y sus estructuras?

Realizar esta tarea con Visual Basic .NET 2008 es realmente sencillo y nada fuera de lo
común. Lo primero que debemos hacer (para seguir el ejemplo) es crear un formulario
con una apariencia similar a la siguiente:

Debemos agregar 4 TextBox, los cuales se utilizarán para realizar la conexión al


servidor. Sus nombres a continuación:

 txtServidor
 txtUsuario
 txtContrasena
 txtBD

Dos botones (uno para conectar al servidor y otro para cerrar la aplicación):

 btnConectar
 btnCerrar

Kubical ORG Software Studio Teléfono: (+506) 2417-1912 Sitio web: www.kubicalorg.net
Página 2 de 4

Un ListBox para cargar la lista de tablas de la base de datos: lstTablas.

Finalmente, un ListView que se utilizará para mostrar la estructura de una tabla cuando
sea seleccionada. El ListView debe contener las siguientes columnas:

 Columna
 Tipo
 Longitud
 Nulos

Para este ejemplo tomaremos únicamente esos datos de INFORMATION_SCHEMA.


INFORMATION_SCHEMA contiene toda la información que necesitamos para obtener la
lista de tablas y sus estructuras.

Ahora únicamente nos falta comenzar a agregar código para ver en funcionamiento la
nueva aplicación (se debe importar System.Data.SqlClient).

Botón btnConectar:

Private Sub btnConectar_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles btnConectar.Click
If Me.txtServidor.Text.Trim <> "" And Me.txtUsuario.Text.Trim <> "" _
And Me.txtBD.Text.Trim <> "" Then
Me.lstTablas.Items.Clear() : Me.lvEstructura.Items.Clear()
Try
'//construimos la cadena de conexion
modGlobal.strConexion_Cadena = "DATA SOURCE=" _
& Me.txtServidor.Text.Trim _
& ";USER ID=" & Me.txtUsuario.Text.Trim & ";PASSWORD=" _
& Me.txtContrasena.Text.Trim _
& ";INITIAL CATALOG=" & Me.txtBD.Text.Trim

Dim conConexion As New SqlConnection(modGlobal.strConexion_Cadena)

'//abrimos la conexion para verificar si podemos ingresar al servidor


conConexion.Open()
'//cerramos la conexion
conConexion.Close()

'//mostramos las tablas de la bd


Call Me.psMostrar_Tablas()
Me.lstTablas.Focus()
Catch ex As Exception
MessageBox.Show(ex.Message, _
“Mensaje”, MessageBoxButtons.OK,
MessageBoxIcon.Error)
End Try
Else
If Me.txtServidor.Text.Trim = "" Then
MessageBox.Show("Por favor, digite el nombre del servidor.", _
“Mensaje”, MessageBoxButtons.OK,
MessageBoxIcon.Error)
Me.txtServidor.Clear() : Me.txtServidor.Focus()
ElseIf Me.txtUsuario.Text.Trim = "" Then
MessageBox.Show("Por favor, digite el usuario que desea utilizar.", _
“Mensaje”, MessageBoxButtons.OK,
MessageBoxIcon.Error)
Me.txtUsuario.Clear() : Me.txtUsuario.Focus()
Else
MessageBox.Show("Por favor, digite el nombre de la base de datos.", _
“Mensaje”, MessageBoxButtons.OK,

Kubical ORG Software Studio Teléfono: (+506) 2417-1912 Sitio web: www.kubicalorg.net
Página 3 de 4
MessageBoxIcon.Error)
Me.txtBD.Clear() : Me.txtBD.Focus()
End If
End If
End Sub

El código anterior nos permitirá conectarnos al servidor de bases de datos y obtener la


lista de tablas por medio de la llamada al procedimiento psMostrar_Tablas.

Procedimiento psMostrar_Tablas:

Private Sub psMostrar_Tablas()


Me.lstTablas.Items.Clear()
Try
Dim conConexion As New SqlConnection(modGlobal.strConexion_Cadena)
Dim coSQL As New SqlCommand("SELECT TABLE_NAME FROM INFORMATION_” _
& “SCHEMA.TABLES WHERE TABLE_NAME<>'sysdiagrams' ORDER BY TABLE_” _
& “NAME", conConexion)
Dim drTablas As SqlDataReader

conConexion.Open()
drTablas = coSQL.ExecuteReader
While drTablas.Read
Me.lstTablas.Items.Add(drTablas("TABLE_NAME"))
End While
drTablas.Close()
conConexion.Close()
If Me.lstTablas.Items.Count > 0 Then Me.lstTablas.SelectedIndex = 0
Catch ex As Exception
MessageBox.Show(ex.Message, _
“Mensaje”, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

El procedimiento psMostrar_Tablas obtiene el nombre de todas las tablas de la base de


datos especificada por el usuario (en el campo txtBD) y las agrega a lstTablas.

Procedimiento psEstructura_Tabla:

Private Sub psEstructura_Tabla(ByVal strTabla As String)


Me.lvEstructura.Items.Clear()
Try
Dim conConexion As New SqlConnection(modGlobal.strConexion_Cadena)
Dim coSQL As New SqlCommand("SELECT COLUMN_NAME,DATA_TYPE,” _
& “CHARACTER_MAXIMUM_LENGTH,IS_NULLABLE FROM INFORMATION_SCHEMA.” _
& “COLUMNS WHERE TABLE_NAME='" & strTabla & "'", conConexion)
Dim drColumnas As SqlDataReader

conConexion.Open()
drColumnas = coSQL.ExecuteReader
While drColumnas.Read
With Me.lvEstructura
.Items.Add(drColumnas("COLUMN_NAME"))
.Items(.Items.Count - 1).SubItems.Add(drColumnas("DATA_TYPE"))
If Not Convert.IsDBNull(drColumnas("CHARACTER_MAXIMUM_LENGTH")) Then
.Items(.Items.Count -
1).SubItems.Add(drColumnas("CHARACTER_MAXIMUM_LENGTH"))
Else
.Items(.Items.Count - 1).SubItems.Add("")
End If
.Items(.Items.Count - 1).SubItems.Add(drColumnas("IS_NULLABLE"))
End With

Kubical ORG Software Studio Teléfono: (+506) 2417-1912 Sitio web: www.kubicalorg.net
Página 4 de 4
End While
drColumnas.Close()
conConexion.Close()
Catch ex As Exception
MessageBox.Show(ex.Message, _
“Mensaje”, MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub

psEstructura_Tabla nos permite obtener la lista de campos de una tabla (strTabla), su


tipo, longitud máxima y saber si el campo permite valores nulos. Este procedimiento es
llamado en el evento SelectedIndexChanged del ListBox lstTablas.

Evento SelectedIndexChanged del lstTablas:

Private Sub lstTablas_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles lstTablas.SelectedIndexChanged
Call Me.psEstructura_Tabla(Me.lstTablas.Text)
End Sub

Este evento carga la estructura de cualquiera de las tablas seleccionadas en el ListBox.

Como pueden ver, esto no requiere de conocimientos avanzados y además, podría


realizarse con cualquier otro lenguaje que no sea VB .NET. INFORMATION_SCHEMA
está disponible en la base de datos para ser utilizado.

Este ejemplo puede funcionar con MySQL, únicamente se debe instalar el driver para
conectar al servidor (MySQLDriverCS) y realizar cambios mínimos.

Se permite la publicación y distribución de la totalidad o parte de este documento (por


cualquier medio), siempre y cuando se mencionen los datos del autor y el contenido se
mantenga intacto.

Desarrollado por Juan Carlos Rojas


© 2010 Kubical ORG Software Studio
Puriscal, San José, Costa Rica

Kubical ORG Software Studio Teléfono: (+506) 2417-1912 Sitio web: www.kubicalorg.net

También podría gustarte