elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  VB .Net y Access, Ordenar columnas de tabla.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: VB .Net y Access, Ordenar columnas de tabla.  (Leído 2,199 veces)
1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
VB .Net y Access, Ordenar columnas de tabla.
« en: 21 Marzo 2014, 20:32 pm »

Hola.
He estado pidiendo ayuda más de lo normal xD

Bueno tengo el siguiente problema.

Necesito obtener los nombres de los campos de unas tablas que tengo en un archivo de access (mdb).
El problema no es obtener los campos, sino que el resultado lo ordena de manera alfabética y los requiero como se encuentra en la tabla.

Estuve leyendo pero no logro conseguirlo.

Por ejemplo de esta tabla en access
Código
  1. CREATE TABLE Users
  2. (
  3.    [ID] AUTOINCREMENT,
  4.    [Name] TEXT(50),
  5.    [LastName] TEXT(50),
  6.    [DateCreate] DATETIME
  7. );
  8.  

El resultado obtenido es DataCreate, ID, LastName, Name y lo necesito en el orden en como se encuentra en la tabla (ID, Name, LastName, DateCreate)

Intenté de esta forma. (un ejemplo pequeño)

*Supongamos que mi archivo se llama "Users.mdb" y además se encuentra en el directorio del proyecto por ejemplo "C:\Users\1mpuls0\Documents\Visual Studio 2010\Projects\ApplicationUsers\ApplicationUsers\bin\Debug\Users.mdb"


Código
  1. Imports System.Data.OleDb
  2.  
  3. Public Class Users
  4.  
  5.    Dim fileName As String = "Users.mdb"
  6.    Dim stringConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & fileName
  7.  
  8.    Private Sub Users_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  9.        Dim connectionFields As New System.Data.OleDb.OleDbConnection(stringConnection)
  10.        connectionFields.Open()
  11.        Dim dataTable As DataTable = connectionFields.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nothing, Nothing, "Users", Nothing})
  12.        dataTable.DefaultView.Sort = "ORDINAL_POSITION"
  13.  
  14.        Dim columns(dataTable.Rows.Count - 1) As String
  15.  
  16.        For fieldNumber As Integer = 0 To dataTable.Rows.Count - 1
  17.            columns(fieldNumber) = dataTable.Rows(fieldNumber)(3)
  18.            MessageBox.Show(columns(fieldNumber))
  19.        Next
  20.    End Sub
  21. End Class
  22.  

También lo he intentado de esta forma. Pero obtengo el mismo resultado :'/

Código
  1. Imports System.Data.OleDb
  2.  
  3. Public Class Users
  4.  
  5.    Dim fileName As String = "Users.mdb"
  6.    Dim stringConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & fileName
  7.  
  8.    Private Sub Users_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  9.        Dim connectionFields As New System.Data.OleDb.OleDbConnection(stringConnection)
  10.        Dim str2$(0)
  11.        connectionFields.Open()
  12.        Dim dataTable As DataTable = connectionFields.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nothing, Nothing, "Users", Nothing})
  13.  
  14.        Dim columns(dataTable.Rows.Count - 1) As String
  15.  
  16.        For fieldNumber As Integer = 0 To dataTable.Rows.Count - 1
  17.            ReDim Preserve str2(fieldNumber)
  18.            str2(fieldNumber) = dataTable.Rows(fieldNumber)!COLUMN_NAME.ToString
  19.            MessageBox.Show(str2(fieldNumber))
  20.        Next
  21.    End Sub
  22. End Class
  23.  

Alguien sabe como puedo hacerlo?.


Solución:

Código
  1. Imports System.Data.OleDb
  2.  
  3. Public Class Users
  4.  
  5.    Dim fileName As String = "Users.mdb"
  6.    Dim stringConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & fileName
  7.  
  8.    Private Sub Users_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  9.        Dim connectionFields As New System.Data.OleDb.OleDbConnection(stringConnection)
  10.        connectionFields.Open()
  11.        Dim dataTable As DataTable = connectionFields.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, New Object() {Nothing, Nothing, "Users", Nothing})
  12.  
  13.        Dim DataRowArray() As DataRow = dataTable.Select(Nothing, "ORDINAL_POSITION", DataViewRowState.CurrentRows)
  14.  
  15.        For Each dr As DataRow In DataRowArray
  16.            MsgBox(dr.Item("COLUMN_NAME"))
  17.        Next
  18.    End Sub
  19. End Class
  20.  

Llevaba algunos días con este tema. Me costó 2 y la mitad del otro xD

Gracias


« Última modificación: 3 Septiembre 2015, 18:19 pm por 1mpuls0 » En línea

abc
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Array_Multisort ordenar columnas. URGENTE
PHP
mehmed 4 2,623 Último mensaje 3 Junio 2010, 17:33 pm
por mehmed
¿Cuantas columnas como máximo en una tabla (MySQL)?
Bases de Datos
Brida 2 8,737 Último mensaje 3 Septiembre 2013, 20:46 pm
por Brida
Ordenar resultados de un buscador en una tabla?
Desarrollo Web
WIитX 1 1,093 Último mensaje 15 Mayo 2016, 23:17 pm
por ivancea96
Ordenar columnas.
Bases de Datos
#Aitor 2 965 Último mensaje 27 Febrero 2017, 21:33 pm
por #Aitor
ordenar tabla
PHP
sheiking 2 841 Último mensaje 21 Abril 2019, 00:07 am
por mchojrin
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines