| ID | Asunto | Fecha | Nick | |
| 55427 | Problema Obtener Nombre de Tablas Con BindingSource | 18/06/11 07:44 | jfelix_5676 | |  |
buenas a todos, bueno mi problema es q' cree una funcion que me devuelve todo a un bindingsource ya con dataadapter y dataset... la funcion me es muy conveniente por q la utilizo para comprobar datos y llenar grillas entre otras cosas. mi problema es q cuando aplico un query general para obtener los nombres de las tablas como SHOW TABLES; no se como obtener los nombres por medio del bindingsource.. mi funcion es la siguiente Function Consult(ByVal Query As String)
Dim SQL As New MySqlCommand
Dim DataSet As DataSet
Dim DataAdapter As New MySqlDataAdapter
Try
Conexion.Open()
DataSet = New DataSet
SQL = New MySqlCommand(Query, Conexion)
DataAdapter.SelectCommand = SQL
DataAdapter.Fill(DataSet, "...")
Catch ex As Exception
Return MSG(ex.ToString, 4)
Finally
DataSet.Dispose()
DataAdapter.Dispose()
Query = Nothing
Conexion.Close()
End Try
Return DataSet.Tables("...").DefaultView
End Function el codigo que hize para tomar los nombres de las tablas es el siguiente.. BindingSource = New BindingSource
BindingSource.DataSource = Consult("SHOW TABLES;")
For X As Integer = 0 To BindingSource.Count - 1
BindingSource.Current.ToString
Nextcomo ven me retorna los datos del dataset para meterlos dentro de un bindingsource.. y de ahi aplicarle el for pero no se como obtener los nombres... como identificarlos el for me funciona perfectamente me da el total de las tablas pero la INSTRUCCION BindingSource.Current.ToString me retorna datos basura.. AYUDA POR FAVOR NOTA: NO QUIERO UTILIZAR EL DATAREADER |
|
| ID | Asunto | Fecha | Nick | |
| 55432 | Re: Problema Obtener Nombre de Tablas Con BindingSource (Resp: 55427) | 18/06/11 23:58 | jfelix_5676 | |  |
Bueno, yo mismo encontre la solucion. la voy a dejar para si alguien utiliza mi funcion y quiere haser lo mismo sepa como solucinarlo el codigo es el siguiente nada mas le agregue dentro del FOR las siguientes lineas: BindingSource.Current(0).ToString
BindingSource.MoveNext() Quedando de la siguiente forma: BindingSource = New BindingSource
BindingSource.DataSource = Consult("SHOW TABLES FROM mda;")
For X As Integer = 0 To BindingSource.Count - 1
BindingSource.Current(0).ToString
BindingSource.MoveNext()
Nextnada mas el BindingSource.Current(0).ToString asignenlo a un label o combobox para agregar los nombres es todo  ... GRAX
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |
|
| ID | Asunto | Fecha | Nick | |
| 55473 | Re: Problema Obtener Nombre de Tablas Con BindingSource (Resp: 55427) | 25/06/11 09:38 | sistemas | | |
Yo lo hago así:
Dim TempAdapter1 As OdbcDataAdapter Dim TempSet1 As DataSet Dim TempRow1 As DataRow
TempAdapter1 = New OdbcDataAdapter("Show Tables", BaseHotel) TempSet1 = New DataSet() TempAdapter1.Fill(TempSet1, "Tabla") Hallado = False For I = 0 To TempSet1.Tables("Tabla").Rows.Count - 1 TempRow1 = TempSet1.Tables("Tabla").Rows(I) If UCase(TempRow1.Item(0)) = UCase("Sociedades") Then Hallado = True Exit For End If Next
Como puedes ver, con TempRow1.Item(0)) tengo el nombre de la tabla y barriendo el dataset puedo obtener todos los nombres de las tablas:
CUIDADO: ten mucho cuidado según si el servidor es linux o windows, ya que cada uno devuelve los nombres a su manera, por eso le pongo la función UCASE que me garantiza homegeneidad.
Saludos
rafael
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |