Leer tablas contenidas en una base de datos

13/10/2005 - 23:45 por Wabi | Informe spam
Trato de aprender a usar vb.net con bases de datos, y estoy experimentando
con un formulario que permita realizar consultas a una base de datos a
traves de instrucciones SQL. (estoy usando access).
Necesito saber como traer la lista de tablas de la base de datos (que puede
variar en funcion de la base de datos que seleccione el usuario).
Es decir, resumiendo, necesito incluir en el dataset, automaticamente, todas
las tablas seleccionadas por el usuario, y podes cargarlas,por ejemplo, en
un listbox.
Y lo que no encuentro es la forma de incluir automaticamente todas las
tables de la base de datos. Algo asi como un Select * para las tablas de la
base de datos.
Gracias por la ayuda

Preguntas similare

Leer las respuestas

#1 Jesús López
14/10/2005 - 19:34 | Informe spam
Aquí tienes un método que dado un archivo de base de datos de Access, carga
todas las tablas de usuario en un dataset y lo muesta en el DataGrid1.

El método GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, Nothing)
devuelve un datatable que contiene un registro por cada tabla de la base de
datos, incluidas las vistas y las tablas de sistema. Como solo quiero las
tablas de usuario uso un dataview que lo filtra.

Sub CargarTablas(ByVal BaseDatosAccess As String)
Dim cn As New
OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
BaseDatosAccess)
cn.Open()
Dim Tablas As DataTable =
cn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, Nothing)
Dim dvTablasUsuario As New DataView(Tablas, "TABLE_TYPE='TABLE'",
"TABLE_NAME", DataViewRowState.CurrentRows)
Dim ds As New DataSet()
Dim SelectCommand As New OleDb.OleDbCommand("", cn)
Dim da As New OleDb.OleDbDataAdapter(SelectCommand)
For Each TablaRowView As DataRowView In dvTablasUsuario
Dim NombreTabla As String = TablaRowView("TABLE_NAME")
SelectCommand.CommandText = "SELECT * FROM [" & NombreTabla &
"]"
da.Fill(ds, NombreTabla)
Next
cn.Close()
Me.DataGrid1.DataSource = ds
End Sub


"Wabi" escribió en el mensaje
news:
Trato de aprender a usar vb.net con bases de datos, y estoy experimentando
con un formulario que permita realizar consultas a una base de datos a
traves de instrucciones SQL. (estoy usando access).
Necesito saber como traer la lista de tablas de la base de datos (que
puede
variar en funcion de la base de datos que seleccione el usuario).
Es decir, resumiendo, necesito incluir en el dataset, automaticamente,
todas
las tablas seleccionadas por el usuario, y podes cargarlas,por ejemplo, en
un listbox.
Y lo que no encuentro es la forma de incluir automaticamente todas las
tables de la base de datos. Algo asi como un Select * para las tablas de
la
base de datos.
Gracias por la ayuda

Respuesta Responder a este mensaje
#2 Wabi
15/10/2005 - 02:46 | Informe spam
Muchas gracias, funciona perfectamente.

"Jesús López" escribió en el mensaje
news:
Aquí tienes un método que dado un archivo de base de datos de Access,
carga todas las tablas de usuario en un dataset y lo muesta en el
DataGrid1.

El método GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, Nothing)
devuelve un datatable que contiene un registro por cada tabla de la base
de datos, incluidas las vistas y las tablas de sistema. Como solo quiero
las tablas de usuario uso un dataview que lo filtra.

Sub CargarTablas(ByVal BaseDatosAccess As String)
Dim cn As New
OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &
BaseDatosAccess)
cn.Open()
Dim Tablas As DataTable =
cn.GetOleDbSchemaTable(OleDb.OleDbSchemaGuid.Tables, Nothing)
Dim dvTablasUsuario As New DataView(Tablas, "TABLE_TYPE='TABLE'",
"TABLE_NAME", DataViewRowState.CurrentRows)
Dim ds As New DataSet()
Dim SelectCommand As New OleDb.OleDbCommand("", cn)
Dim da As New OleDb.OleDbDataAdapter(SelectCommand)
For Each TablaRowView As DataRowView In dvTablasUsuario
Dim NombreTabla As String = TablaRowView("TABLE_NAME")
SelectCommand.CommandText = "SELECT * FROM [" & NombreTabla &
"]"
da.Fill(ds, NombreTabla)
Next
cn.Close()
Me.DataGrid1.DataSource = ds
End Sub


"Wabi" escribió en el mensaje
news:
Trato de aprender a usar vb.net con bases de datos, y estoy
experimentando
con un formulario que permita realizar consultas a una base de datos a
traves de instrucciones SQL. (estoy usando access).
Necesito saber como traer la lista de tablas de la base de datos (que
puede
variar en funcion de la base de datos que seleccione el usuario).
Es decir, resumiendo, necesito incluir en el dataset, automaticamente,
todas
las tablas seleccionadas por el usuario, y podes cargarlas,por ejemplo,
en
un listbox.
Y lo que no encuentro es la forma de incluir automaticamente todas las
tables de la base de datos. Algo asi como un Select * para las tablas de
la
base de datos.
Gracias por la ayuda





email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida