quinta-feira, 4 de março de 2010

Listview C#

        Breve relato para ajudar a preencher um listView.

         private void InsereItem()
        {
            ListViewItem item = new ListViewItem();

            item = listView1.Items.Add("Sequencia");

            item.SubItems.Add("Codigo");
            item.SubItems.Add("Descricao");
            item.SubItems.Add("ItemQtde");
            item.SubItems.Add("ItemUnidade");
            item.SubItems.Add("ItemVlrUnitario");
            item.SubItems.Add("ItemDesconto");
            item.SubItems.Add("ItemAliqICMS");
            item.SubItems.Add("ItemAliqIPI");
            item.SubItems.Add("ItemIPIValor");
            item.SubItems.Add("ItemTP");
            item.SubItems.Add("ItemVlrTotal");
            item.SubItems.Add("EmpCodigo");
            item.SubItems.Add("NumNota");
            item.SubItems.Add("NumLanc");
            item.SubItems.Add("DtMovimento");
            item.SubItems.Add("SitTributaria");
            item.SubItems.Add("IcmsValor");
            //listView1.Items.Add(item);
        }



  private void PreparaListView()
        {
                          //verifica se foi informada uma consulta
             //if (t.Text.Equals(""))
             //{
             //   MessageBox.Show("Digite uma instrução válida.");
             //   return;
             //}

               //define a string de conexão
            string sDBstr = @"Provider=sqloledb;Data Source=cpd2\SQLExpress;Initial Catalog=NomeBanco;User Id=sa;Password=xxxs"; //conexao oledb
          
             Csql = "SELECT ItemSequencia,NI.Codigo,P.Descricao,ItemQtde,ItemUnidade,ItemVlrUnitario " +
                " ,ItemDesconto,ItemAliqICMS,IcmsValor" +
                " ,ItemAliqIPI,ItemIPIValor,ItemTP,ItemVlrTotal,EmpCodigo,NFNumNota,NumLanc,ItemDtMovimento " +
                " ,SitTributaria,ItemIcmsValor " +
                " FROM NotaItem NI inner join Produto p on NI.Codigo = P.Codigo ";

             //criar o objeto connection
             OleDbConnection conn = new OleDbConnection(sDBstr);

             try
             {
                //limpa o listview
                listView1.Columns.Clear() ;
                listView1.Items.Clear();

                //abre a conexao
                conn.Open();

               //cria um comando oledb
               OleDbCommand cmd = conn.CreateCommand();
               //define o tipo do comando como texto
               cmd.CommandText = Csql;

               //executa o comando e gera um datareader
               OleDbDataReader dr = cmd.ExecuteReader();

               //preenche o cabeçalho do listview com os nomes dos campos
               for (int i = 0; i< dr.FieldCount; i++)
               {
                 ColumnHeader ch = new ColumnHeader();
                 ch.Text=dr.GetName(i);
                 listView1.Columns.Add(ch);
               }

               //define um item listview
               ListViewItem item;

               //inicia leitura do datareader
               while (dr.Read())
               {
                 item=new ListViewItem();
                 item.Text= dr.GetValue(0).ToString();

                 //preenche o listview com itens
                 for (int i=1 ; i< dr.FieldCount; i++) {
                    item.SubItems.Add(dr.GetValue(i).ToString());
                 }
                 listView1.Items.Add(item);
               }
               //fecha o datareader
               dr.Close();
             }
             catch ( System.Data.OleDb.OleDbException  ex)
             {
               MessageBox.Show("Ocorreu um erro durante a execução da instrução SQL." +
                       "Erro : " + ex.Message, "SQL");
             }
             finally
             {
             //fecha a conexao
               conn.Close();
             }  
        }

Nenhum comentário:

Postar um comentário