C# - Convertendo DataSet e DataTable para ArrayList


Você já precisou converter um DataSet ou DataTable para um ArraList ?

Hoje eu mostro como fazer isso usando a linguagem C#.

No nosso exemplo o usuário poderá definir a string de conexão e a tabela que deseja acessar para converter.

Abra o Visual C# 2010 Express Edition e crie um novo projeto do tipo Windows Forms Application com o nome DataTableDataSet_ArrayList;

A seguir no formulário padrão form1.cs inclua os seguintes controles:

Conforme o leiaute da figura abaixo:

O exemplo define a string de conexão com o banco de dados Northwind.mdf do SQL Server e a tabela Customers.

Os namespaces usados no projeto são:

using System;
using System.Collections;
using System.Data;
using System.Windows.Forms;
using System.Data.SqlClient;

Agora vamos definir o código das rotinas : ConverterDataTableParaArrayList() e ConverterDatasetParaArrayList() que convertem um DataTable e um DataSet para um ArrayList.

1 - ConverterDatasetParaArrayList()

  public ArrayList ConverterDatasetParaArrayList()
        {
            DataSet ds = new DataSet();
            ArrayList lista = new ArrayList();
            
            string cmdSQL = "select TOP 10 CustomerID,ContactName,City from " + txtTabela.Text;

            using (SqlConnection con = new SqlConnection(txtStringConexao.Text))
            {
                using (SqlCommand cmd = new SqlCommand(cmdSQL , con))
                {
                    con.Open();
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(ds);

                    foreach (DataRow dtrow in ds.Tables[0].Rows)
                    {
                        lista.Add(dtrow);
                        //exibe os registros no listbox
                        lstDataSetArrayList.Items.Add(dtrow.ItemArray[0] + " # " + dtrow.ItemArray[1] + " # " + dtrow.ItemArray[2]);
                    }
                }
            }
            return lista;
        }

O código obtém apenas os 10 registros da tabela Customers e cria um dataset;

Em seguir percorremos a tabela do DataSet e obtemos um datarow que representa uma linha da tabela Customers;

O datarow é então incluindo no ArrayList;

Exibimos também no controle listbox os campos obtidos usando o método ItemArray().

2 - ConverterDataTableParaArrayList()

 public ArrayList ConverterDataTableParaArrayList()
        {
            DataTable dt = new DataTable();
            ArrayList lista = new ArrayList();
            
            string cmdSQL = "select TOP 10 CustomerID,ContactName,City from " + txtTabela.Text;

            using (SqlConnection con = new SqlConnection(txtStringConexao.Text))
            {
                using (SqlCommand cmd = new SqlCommand(cmdSQL, con))
                {
                    con.Open();
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    da.Fill(dt);

                    foreach (DataRow dtrow in dt.Rows)
                    {
                        lista.Add(dtrow);
                        //exibe os registros no listbox
                        lstDataTableArrayList.Items.Add(dtrow.ItemArray[0] + " - " + dtrow.ItemArray[1] + " - " + dtrow.ItemArray[2]);                    }
                }
            }
            return lista;
        }

O código obtém apenas os 10 registros da tabela Customers e cria um datatable;

Em seguir percorremos o DataTable de onde obtemos um datarow que representa uma linha da tabela Customers;

O datarow é então incluindo no ArrayList;

Exibimos também no controle listbox os campos obtidos usando o método ItemArray().

Na figura acima vemos a exibição dos campos obtidos da tabela e usados na conversão do dataset e o datatable para um ArrayList.

Pegue o projeto completo aqui: DataTableDataSet_ArrayList.zip

Veja os Destaques e novidades do SUPER CD VB 2012 (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Veja mais sistemas completos para a plataforma .NET no Super CD .NET e no Super DVD .NET , confira...

Quer aprender C# ??

Chegou o Super DVD C# 2012 com exclusivo material de suporte e vídeo aulas com curso básico sobre C#.

 

Rom 15:10 E outra vez diz: Alegrai-vos, gentios, juntamente com o povo.
Rom 15:11
E ainda: Louvai ao Senhor, todos os gentios, e louvem-no, todos os povos.
Rom 15:12
E outra vez, diz também Isaías: Haverá a raiz de Jessé, aquele que se levanta para reger os gentios; nele os gentios esperarão.

Rom 15:13
Ora, o Deus de esperança vos encha de todo o gozo e paz na vossa fé, para que abundeis na esperança pelo poder do Espírito Santo.

Referências:


José Carlos Macoratti