Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/11/2008, 13:20
Avatar de Recucuno
Recucuno
 
Fecha de Ingreso: noviembre-2008
Mensajes: 5
Antigüedad: 16 años, 1 mes
Puntos: 0
Respuesta: Ayuda para: SQL server 2005

Tengo este codigo pero me dice que mi base no existe, y cuando coloco bases del sistema si me las muestra. Ahora que hice mal??

necesitas:
Un control Listview llamado ListView1
Un ComboBox llamado ComboBox1
Un Control Button llamado Button1
Configurar la cadena de conexión

Option Explicit On
Option Strict On

Imports System.Data.SqlClient

Public Class Form1

Private name_bd As String = String.Empty

' Cadena de conexión para sql server express en modo local
Private Const cs As String = "Data Source=(local)\SQLEXPRESS;" & _
"Integrated Security=True;" & _
"Initial Catalog="

' función para llenar el LV
Public Sub cargar_ListView( _
ByRef ListView As ListView, _
ByVal sql As String, _
ByVal db As String)

Try
' Crea y abre una nueva conexión
Using cn As New SqlConnection(cs & db)

cn.Open()

' propiedades del SqlCommand
Dim comando As New SqlCommand

With comando
.CommandType = CommandType.Text
.CommandText = sql

.Connection = cn
End With

Dim da As New SqlDataAdapter ' Crear nuevo SqlDataAdapter
Dim dataset As New DataSet ' Crear nuevo dataset

da.SelectCommand = comando

' llenar el dataset
da.Fill(dataset, "Tabla")

' Propiedades del ListView
With ListView
.Items.Clear()
.Columns.Clear()
.View = View.Details
.GridLines = True
.FullRowSelect = True
' añadir los nombres de columnas
For c As Integer = 0 To dataset.Tables("tabla").Columns.Count - 1
.Columns.Add(dataset.Tables("tabla").Columns(c).Ca ption)
Next
End With

' Añadir los registros de la tabla
With dataset.Tables("tabla")
For f As Integer = 0 To .Rows.Count - 1

Dim dato As New ListViewItem(.Rows(f).Item(0).ToString)
' recorrer las columnas
For c As Integer = 1 To .Columns.Count - 1
dato.SubItems.Add(.Rows(f).Item(c).ToString())
Next
ListView.Items.Add(dato)
Next
End With
End Using
' errores
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End Sub

' Función que retorna un objeto DataTable para
'enlazarlo con el combobox y visualizar las tablas
Private Function get_Tablas( _
ByVal la_base_de_datos As String) As DataTable

Try

' nueva conexión a sql
Using cn As New SqlConnection(cs)
' nuevo comando
Dim comando As SqlCommand = New SqlCommand()
' Nuevo DataAdapter
Dim da As SqlDataAdapter = New SqlDataAdapter()

'Nuevo DataTable
Dim dt As DataTable = New DataTable()

'Asignación de propiedades para el comando
With comando
.Connection = cn
.CommandType = CommandType.Text
' instrucción T-SQL para obtener las tablas
.CommandText = "Use [" & la_base_de_datos & "] " & _
"Select * From INFORMATION_SCHEMA.TABLES " & _
"Where TABLE_TYPE = 'BASE TABLE'"

da.SelectCommand = comando
End With

da.Fill(dt)

' retornar el dataTable
Return dt
End Using

' errores
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
Return Nothing

End Function
Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
Button1.Text = "Obtener tablas"

' Propiedades del ComboBox
With ComboBox1
.ValueMember = "TABLE_CATALOG"
.DisplayMember = "TABLE_NAME"
End With

End Sub

Private Sub ComboBox1_SelectedIndexChanged( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

' cargar los registros de la tabla indicada por el combobox

cargar_ListView( _
ListView1, _
"Select * from [" & ComboBox1.Text.ToString & "]", _
name_bd)

End Sub

Private Sub Button1_Click( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click


name_bd = InputBox("Escribir el nombre de la base de datos")

If name_bd <> String.Empty Then
Try
' Indicar la base de datos para recuperar
'y cargar las tablas en la lista
ComboBox1.DataSource = get_Tablas(name_bd.Trim)
Catch ex As Exception
MsgBox(ex.Message.ToString)
End Try
End If
End Sub
End Class