Visual Basic.NET - Mysql y DataSet

 
Vista:

Mysql y DataSet

Publicado por Germán (19 intervenciones) el 20/09/2009 18:17:29
Hola!
Estoy haciendo una aplicación en VS2005. Esta aplicación, necesita trabajar con 3 tablas, relacionadas entre si por un campo. Trabajo con MySqlDataAdapter, MySqlCommandBuilder y DataSet. El problema es que no se muy bien si me vale con 1 adapatador para las 3 tablas o tengo que usar 3, si necesito un DataSet para las 3 tablas o tengo que usar 3 y sobre todo como reflejar esas relaciones entre las tablas.
Espero haberme explicado bien

Gracias y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Mysql y DataSet

Publicado por Schuster (6 intervenciones) el 30/09/2009 18:36:51
No se que es lo mas optimo para tu aplicaion pero las dos opciones son posibles. Leete esto

Un único DataSet puede albergar y manipular simultáneamente el contenido de varias tablas en forma independiente. El proceso de cargar más de una estructura no difiere en mucho al de cargar una sola. Cada conjunto de filas a obtener debe ser retornado por un objeto de tipo DataAdapter, por lo que si se desea contar con el contenido de tres tablas,
se necesitará definir tres adaptadores especificando en cada uno el elemento deseado.

Veamos un ejemplo:
Dim sConexión, sComandoCatalogo, sComandoTitulos, sComandoAutores as String
Dim AdaptadorCatalogo as OleDbDataAdapter
Dim AdaptadorTitulos as OleDbDataAdapter
Dim AdaptadorAutores as OleDbDataAdapter
Dim ds as new Dataset

sConexion = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:Database
Password=;User ID=Admin;Data Source=\Inetpub\wwwroot\DataSet\Libreria.MDB;"

sComandoCatalogo = “Select * From Catalogo”
sComandoTitulos = “Select * From Titulos”
sComandoAutores = “Select * From Autores”

AdaptadorCatalogo = New OleDbDataAdapter(sComandoCatalogo, sConexion)
AdaptadorTitulos = New OleDbDataAdapter(sComandoTitulos, sConexion)
AdaptadorAutores = New OleDbDataAdapter(sComandoAutores, sConexion)
AdaptadorCatalogo.Fill(ds, "Catalogo")
AdaptadorTitulos.Fill(ds, "Titulos")
AdaptadorAutores.Fill(ds, "Autores")

Como resultado de este ejemplo se obtiene un único DataSet que contiene las filas de
las tres tablas. Para acceder a alguna de ellas, basta con realizar una estructura
for-each, incluyendo el nombre de la tabla a recorrer de la siguiente forma:
Dim Fila As DataRow
Filas.Items.Clear()
For Each Fila In ds.Tables("Catalogo").Rows
Filas.Items.Add(Fila("Encabezamiento"))
Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Mysql y DataSet

Publicado por Germán (19 intervenciones) el 30/09/2009 22:11:22
Muchas gracias, voy a optar por el modo que me indicas. La duda que me surge ahora es si debo utilizar un CommandBuilder para cada adaptador o un CommandBuilder para los tres.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar