Visual Basic.NET - Ordenar datos de un datagridview

   
Vista:

Ordenar datos de un datagridview

Publicado por SIMON (22 intervenciones) el 24/05/2014 03:13:40
Hola a todos, tengo una consulta Cliente, que busca por código, nombre y apellidos, hasta ahí todo va perfecto y funciona bien.

Este es el código de mi consulta.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Try
            Dim Consulta As String
            If CboBuscar.Text = "" Then
                MsgBox("Debe seleccionar una opción de búsqueda", vbExclamation, "Error")
                CboBuscar.Focus()
                Return
            End If
 
            If CboBuscar.Text = "CODIGO" Then
                Consulta = " Select codigo as Código, Nom_cli as Nombre, apell_cli as Apellidos, dir_cli as Dirección,ced_cli as Cédula, bal_cli as Balance from Tbla_Clientes where codigo LIKE '%" + TextBuscar.Text + "%'"
 
 
                Dim ObjDataSet As New DataSet()
                Dim Tbla_ClienteMemoria As New DataTable()
 
                Dim objAdap As New OleDbDataAdapter(Consulta, conexion)
 
                conexion.Close()
                conexion.Open()
                objAdap.Fill(Tbla_ClienteMemoria)
                Me.dgvConBuscaCliente.DataSource = Tbla_ClienteMemoria
                conexion.Close()
            End If
 
            If CboBuscar.Text = "NOMBRE" Then
                Consulta = " Select codigo as Código, Nom_cli as Nombre, apell_cli as Apellidos, dir_cli as Dirección,ced_cli as Cédula, bal_cli as Balance from Tbla_Clientes where nom_cli LIKE '%" + TextBuscar.Text + "%'"
 
                Dim ObjDataSet As New DataSet()
                Dim Tbla_ClienteMemoria As New DataTable()
 
                Dim objAdap As New OleDbDataAdapter(Consulta, conexion)
 
                conexion.Close()
                conexion.Open()
                objAdap.Fill(Tbla_ClienteMemoria)
                Me.dgvConBuscaCliente.DataSource = Tbla_ClienteMemoria
                conexion.Close()
            End If
 
            If CboBuscar.Text = "APELLIDO" Then
                Consulta = " Select codigo as Código, Nom_cli as Nombre, apell_cli as Apellidos, dir_cli as Dirección,ced_cli as Cédula, bal_cli as Balance from Tbla_Clientes where apell_cli LIKE '%" + TextBuscar.Text + "%'"
 
                Dim ObjDataSet As New DataSet()
                Dim Tbla_ClienteMemoria As New DataTable()
 
                Dim objAdap As New OleDbDataAdapter(Consulta, conexion)
 
                conexion.Close()
                conexion.Open()
                objAdap.Fill(Tbla_ClienteMemoria)
                Me.dgvConBuscaCliente.DataSource = Tbla_ClienteMemoria
                conexion.Close()
            End If

Tengo tres RadioButton, uno para ordenar por código, otro por Nombre, y el último por Apellido
Después que el datagridview está lleno con los datos, cual es el código para ordenar los datos., ya sea por código, nombre y apellidos.

Gracias de por adelantado.
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

Ordenar datos de un datagridview

Publicado por Pico (168 intervenciones) el 24/05/2014 07:59:26
Para eso ya están las columnas. Le das en la cebecera a una y te la ordena. Basta con tener el AllowUserToOrderColumns a true con el SortMode en Automatic. Para hacerlo con un botón, SortMode en Programatic.y propiedad SortOrder.

http://msdn.microsoft.com/es-es/library/95scxcdy%28v=vs.110%29.aspx
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

Ordenar datos de un datagridview

Publicado por SIMON (22 intervenciones) el 24/05/2014 18:32:07
por favor, por favor, podrías escribir el código que va dentro del botón, ordenar por código, otro botón ordenar por nombre, ect.

soy nuevo en programación y no entiendo mucho.

un millón de gracias por adelantado.
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
Imágen de perfil de Wilfredo Patricio Castillo

Ordenar datos de un datagridview

No especificas nada respecto al orden que necesitas, es un arden alfabético ascendente o descendente?.

Basta con que en tu consuolta establezcas Select Codigo, Nombre From tabla where nombre = algo
ORDER BY Nombre Asc -- o podria ser DESC

Eso seria todo, cone so vienen los datos ordenados como tu quieras y no necesitas hacer otra cosa mas.

Salvo mejor parecer

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

Ordenar datos de un datagridview

Publicado por SIMON (22 intervenciones) el 25/05/2014 03:12:45
lo hize con codigo de forma

1
2
3
4
5
6
7
8
9
10
11
12
Dim sel As String
 
 
 
        conexion.Close()
        conexion.Open()
 
        sel = "Select * from Tbla_Clientes order by Nom_cli ASC"
 
        comandos = New OleDb.OleDbCommand(sel, conexion)
        comandos.ExecuteNonQuery()
        conexion.Close()

realmente no funciona,

tengo tres botones: ordenar por código, otro botón: ordenar por Nombre, ect.

cuando doy clic por ejemplo al botón ordenar por nombre: los datos del DataGridView , deben ordenarse por nombre de forma ascendente.

gracias por anticipado.
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

Ordenar datos de un datagridview

Publicado por Pico (168 intervenciones) el 25/05/2014 07:13:38
Para dar botones ya tienes las cabeceras de las columnas.
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
Imágen de perfil de Wilfredo Patricio Castillo

Ordenar datos de un datagridview

1
2
3
4
5
6
7
8
9
10
Dim sel As String
 
conexion.Close()
conexion.Open()
 
sel = "Select * from Tbla_Clientes order by Nom_cli ASC"
 
comandos = New OleDb.OleDbCommand(sel, conexion)
comandos.ExecuteNonQuery()
conexion.Close()

Este código que estás usando no es el adecuando.


Deberías usar un OleDbDataReader con su respectivo ExeCuteReader().

Deberías leer un poco sobre como recuperar los datos.

Luego tienes que asignar lo que te devuelve al datagridview.


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

Ordenar datos de un datagridview

Publicado por Elianny Esther (62 intervenciones) el 08/06/2014 18:30:12
es muy simple:
en cada botón que dices usa este código:

1
dgvConsultaEstudiante.Sort(dgvConsultaEstudiante.Columns(0), System.ComponentModel.ListSortDirection.Ascending)


donde 0, es la primera columna.
donde 1 es la segunda columna.
ect.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar