none
Imprimir em ordem alfabética RRS feed

  • Pergunta

  • Estou tentado imprimir os dados do meu BD em ordem alfabética mas não estou conseguindo. no meu dgview já vem em ordem alfabética (implementei no cmd SQL) o problema é qdo eu mando imprimir: não sai na ordem do dgview. Como eu posso resolver?
    domingo, 25 de maio de 2014 14:25

Respostas

  • correto

     Existem algumas maneiras para se fazer isso, veja esse exemplo que eu fiz foi criando Um List<string> temporario para ordenar os dados mais facilmente :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace MSDN
    {
        public partial class Form2 : Form
        {
            List<Produto> produtos = new List<Produto>();
    
            public Form2()
            {
                InitializeComponent();
    
                //adiciono dados ao produto
                for (int i = 0; i < 10; i++)
                {
                    Produto p = new Produto();
                    p.Codigo = i;
                    p.Descricao = "CELULAR CODIGO = " + i;
                    produtos.Add(p);
                }
    
                dataGridView1.Columns.Add("COLUNA1", "COLUNA1");
                dataGridView1.Columns.Add("COLUNA2", "COLUNA2");
    
                for (int i = 0; i < produtos.Count; i++)
                {
                    dataGridView1.Rows.Add(produtos[i].Codigo, produtos[i].Descricao);
                }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //ARRAY TEMPORARIO PARA ORDENAR OS DADOS MAIS SIMPLES
                List<string> listaTemporaria = new List<string>();
    
                //AQUI VAMOS LER OS ITENS ORDENADOS
                foreach (DataGridViewRow item in dataGridView1.SelectedRows)
                {
                    listaTemporaria.Add(item.Cells[1].Value.ToString());
                }
    
                //itera pela colecao e ordenada
                foreach (var item in listaTemporaria.OrderBy(i => i))
                {
                    MessageBox.Show(item);
                }
            }
        }
    
        class Produto
        {
            public int Codigo { get; set; }
            public string Descricao { get; set; }
        }
    }
    
     Execute o Form e tente entender, espero que lhe ajude.

    domingo, 25 de maio de 2014 23:53

Todas as Respostas

  • Olá isso depende, você deseja percorrer seu datagrid e imprimir os dados, ou percorrer seu seu SqlDataReader ou SqlDataAdapter ?
    domingo, 25 de maio de 2014 19:01
  • percorrer o Dgview.
    domingo, 25 de maio de 2014 19:36
  • percorrer o Dgview.

      Veja se isso lhe ajuda :

    //loop para percorrer todas as linhas do datagrid
                foreach (DataGridViewRow item in dataGridView1.Rows)
                {
                    //mostrando somente a coluna 0 
                    MessageBox.Show(item.Cells[0].Value.ToString());
                }

    domingo, 25 de maio de 2014 19:51
  • Tentei aqui mas continua do mesmo jeito!

    Nota: Meu dgview está ativado com a propriedade Multiselect como true, e como falei antes meu dgview já carrega em ordem alfabética; Quando eu seleciono de cima pra baixo a ordem do nome das pessoas fica invertida e quando seleciono de baixo pra cima sai em ordem alfabética; Bizarro.

    alguma idéia?

    domingo, 25 de maio de 2014 20:25
  • Tentei aqui mas continua do mesmo jeito!

    Nota: Meu dgview está ativado com a propriedade Multiselect como true, e como falei antes meu dgview já carrega em ordem alfabética; Quando eu seleciono de cima pra baixo a ordem do nome das pessoas fica invertida e quando seleciono de baixo pra cima sai em ordem alfabética; Bizarro.

    alguma idéia?

      Então você quer selecionar os nomes que está selecionado pelo usuario em ordem alfabética ?
    domingo, 25 de maio de 2014 20:29
  • correto
    domingo, 25 de maio de 2014 20:46
  • correto

     Existem algumas maneiras para se fazer isso, veja esse exemplo que eu fiz foi criando Um List<string> temporario para ordenar os dados mais facilmente :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace MSDN
    {
        public partial class Form2 : Form
        {
            List<Produto> produtos = new List<Produto>();
    
            public Form2()
            {
                InitializeComponent();
    
                //adiciono dados ao produto
                for (int i = 0; i < 10; i++)
                {
                    Produto p = new Produto();
                    p.Codigo = i;
                    p.Descricao = "CELULAR CODIGO = " + i;
                    produtos.Add(p);
                }
    
                dataGridView1.Columns.Add("COLUNA1", "COLUNA1");
                dataGridView1.Columns.Add("COLUNA2", "COLUNA2");
    
                for (int i = 0; i < produtos.Count; i++)
                {
                    dataGridView1.Rows.Add(produtos[i].Codigo, produtos[i].Descricao);
                }
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                //ARRAY TEMPORARIO PARA ORDENAR OS DADOS MAIS SIMPLES
                List<string> listaTemporaria = new List<string>();
    
                //AQUI VAMOS LER OS ITENS ORDENADOS
                foreach (DataGridViewRow item in dataGridView1.SelectedRows)
                {
                    listaTemporaria.Add(item.Cells[1].Value.ToString());
                }
    
                //itera pela colecao e ordenada
                foreach (var item in listaTemporaria.OrderBy(i => i))
                {
                    MessageBox.Show(item);
                }
            }
        }
    
        class Produto
        {
            public int Codigo { get; set; }
            public string Descricao { get; set; }
        }
    }
    
     Execute o Form e tente entender, espero que lhe ajude.

    domingo, 25 de maio de 2014 23:53