C# – DataSet, DataTable e DataRow

Exemplos de uso para DataSet e DataTable

  • Criando Tabelas

#region TABELA TOTAIS  (5 Campos)
        public void CriaTabelaTotais()
        {
            DataTable TOTAL = new DataTable();
            TOTAL.Columns.Add(“BLOCO”);
            TOTAL.Columns.Add(“REGS”);
            TOTAL.Columns.Add(“BASE”);
            TOTAL.Columns.Add(“PIS”);
            TOTAL.Columns.Add(“COFINS”);
TOTAL.TableName = “TOTAL”;
dsTOTAIS.Tables.Add(TOTAL);
        }
#endregion

  • Adicionar Linhas na Tabela

DataRow dr    = dsTOTAIS.Tables[“TOTAL”].NewRow();
dr[“CAMPO”] = dado.ToString();
dsTOTAIS.Tables[“TOTAL”].Rows.Add(dr);

  • Select Padrão sobre DataSet

string SQL0200 = “COD_ITEM='” + item[“COD_ITEM”].ToString() + “‘”;
DataRow[] Linha1100 = dsBLOCOSEXT100.Tables[“1101”].Select(SQL0200);

  • Limpando DataSet

dsEFDOriginal.Tables[“EFD_ORIGINAL”].Rows.Clear();

  • Copiar uma DataRow de outros DataSet

dsEFDOriginal.Tables[“TabelaOrigem”].ImportRow(dr);

  • Copiando um DataRow para um DataTable

DataRow[] resultFAT3 = dtFAT_ORD.Select(“NUMERO_OP=’-1′”,”RESERVA ASC, VALOR DESC”);
DataTable TABTESTE = new DataTable();
resultFAT3.CopyToDataTable<DataRow>(TABTESTE, LoadOption.Upsert);

  • Capturar uma Planilha para DataSet

OleDbDataAdapter MyCommand;
OleDbConnection(“Provider=Microsoft.ACE.OLEDB.12.0;Data Source=” + sFile + “;Extended Properties=Excel 12.0;”);
MyCommand = new System.Data.OleDb.OleDbDataAdapter(“SELECT * FROM [EMPRESA$]”, MyConnection);
MyCommand.TableMappings.Add(“Table”, “EMPRESA”);
MyCommand.Fill(dsXLS_EMPRESA);

  • Select para DataRow

DataRow[] result = table.Select(“Date > #6/1/2001#”);

  • Select para DataTable

string SQL0200 = “BLOCO=’0200′ AND CNPJ='” + this.pdCNPJ.Text.ToString().Trim() + “‘”;
DataTable Linha0200EFDOriginal =  dsEFDOriginal.Tables[“EFD_ORIGINAL”].Select(SQL0200).CopyToDataTable();

  • Leitura Sequencial de TXT com PIPE

if (File.Exists(this.radTextBox2.Text) == true)
{
// Conta as linhas
int xlinabertura = countWithReadAndBufferSize(this.radTextBox2.Text);
// Loop
using (StreamReader strEFD = new StreamReader(File.Open(this.radTextBox2.Text, FileMode.Open), System.Text.Encoding.Default))
{

dsEFDOriginal.Tables[“EFD_ORIGINAL”].Rows.Clear();
while ((alinha = strEFD.ReadLine()) != null)
{
// Atribui o Dados da Linha para Tabela
if (alinha.Trim() != “” && alinha.Substring(0,1)==”|”)
{
efdLinhas++;
//string[] lines = alinha.Split(‘|’);
DataRow dr = dsEFDOriginal.Tables[“EFD_ORIGINAL”].NewRow();
dr[“IDLINHA”] = efdLinhas;
dr[“TXT”] = alinha.ToString();
dsEFDOriginal.Tables[“EFD_ORIGINAL”].Rows.Add(dr);
}
}
}
}