| |||
combinacion de tablaadapters hola amigos del foro mi duda es la siguiente, cree un dataset el cual contiene tres tablaadapters diferentes, estos estan ligados, mi pregunta es la siguiente es posible crear un query general que involucre los tres tablaadapters para obtener una informacion especifica, cualquier sugerencia es recividad. |
| |||
ok amigo, lo qe estoy haciendo es que estoy creando dataadapters de diferentes origenes de datos y los combino en un data set,ya los tengo ligados, ejemplo: dataadapter1.-tengo los nombre dataadapter2.-tengo los apellidopaterno dataadapter3.-tengo los apellidomaterno todo esto esta dentro d eun dataset, lo que quiero hacer es poner un gridview en donde me muestre los nombres completos, pero no se como hacer esto. |
| ||||
Lo primero que se me ocurre es que recorras las Tablas de ese Dataset y vayas formando un origen de Datos nuevo con la estructura que quieres que tenga el Datagrid. Otra opcion, mejor, sería que cuando haces la SELECT utilices INNER JOIN para enlazar varias tablas y así poder sacar la combinacion de campos que necesitas, en el orden que necesites. El resultado sería el origen de datos que enlaces con tu datagrid. Esto siempre y cuando no necesites tener las tablas por separado en tu dataset... Como ves, hay varias opciones.. Saludos.
__________________ ..:: moNTeZIon ::.. |
| |||
ok amigo entiedo tu punto de vista, pero el motivo que hago esto es que donde laboro tiene bases de datos en mysql y en sqlserver, y lo que quiero hacer es tomar tablas de una base de sqlserver y mysql y combianarlas dentro de un dataset y poder manipular, realizar una sentencia sql en donde combien las dos tablas dentro del datase y obtener una informacion especifica, si tienes un ejemplo de esto pasamlo porfavor, gracias por leer esto. |
| ||||
mmm... No tengo un ejemplo de esto. Si ya tienes todos los datos de las distintas BDs en un mismo Dataset, y ya están relacionados los DataTables... Puedes recorrer el Dataset, extrayendo la información necesaria, metiéndola en un nuevo origen de datos que sea el que enlazarás con el Grid. Quizá tengas la posiblilidad de enlazar directamente el Dataset que ya tienes, sin tener que perder este tiempo de recorrer el Dataset entero. Para hacerlo de esta forma no puedo ayudarte mucho, pero se que podrías crear un campo calculado en el datatable de los nombres, que sea el nombre + apellidospaterno + apellidomaterno (Accediendo a los dos últimos mediante una relacion del dataset). Y finalmente, éste es el campo que enlazas con la columna del Grid. Suerte lilico!
__________________ ..:: moNTeZIon ::.. |
| |||
Lo que puedes hacer es usar un solo adapter, y especificar un commando de seleccion para cada tabla o consulta que quieres obtener. Utiliza un OleDbDataAdapter y crea un commando para cada base de datos le asignas una coneccion diferente, solo tendras que constrir la cadena de coneccion respectiva a cada base de datos, sea oracle, mysql, sqlserver o cual sea, SqlDataAdapter es solo para bases de datos sql lo cual no es el caso. algo similar a esto.
Código:
Despues utiliza el metodo vb.net Dim oleAdapter As New OleDbDataAdapter Dim oleConnectionSQLServer As New OleDbConnection("Provider=MySqlProv.3.0;...;.etc..;...;") Dim oleConnectionMySQL As New OleDbConnection("Provider=SQLOLEDB.1;...;.etc..;...;") Dim ds As New DataSet 'Construye la estructura del dataset con relaciones y demas o crea un dataset tipeado 'Imagino que debe de haber un campo para relacionar las dos tablas en este caso id, crea un relacion entre las tablas con el ID With oleAdapter .SelectCommand = New OleDbCommand("select id,nombre from clientes", oleConnectionMySQL) .Fill(ds, "TableNombre") .SelectCommand = New OleDbCommand("select id,nombre from clientes", oleConnectionSQLServer) .Fill(ds, "TableApellidos") End With
Código:
espero te sirva.Dim rows() As DataRow = ds.Tables("TableNombre").Rows(0).GetChildRows("Relacion") 'En rows esta el apeelido relacionado al nombre Un saludo!. |