/// <summary> /// A validação será "superficial" apenas o dado da primeira célula será validado, inicialmente. /// </summary> private void ValidaLayout() { try { FonteDeDadosOld PlanilhaStatusReport = new FonteDeDadosOld(TipoFonteDados.Excel, _caminhoArquivo, "[Status Report Geral]", "", ""); DataTableReader dtrExcelStatusReport = PlanilhaStatusReport.NewReader("Select * from [Status Report Geral$]"); if (dtrExcelStatusReport != null) { dtrExcelStatusReport.Read(); String ValorPrimeiraCelula = dtrExcelStatusReport[0].ToString(); if (ValorPrimeiraCelula.Equals("Relatório gerado em:")) { _layoutCorreto = true; } else { _layoutCorreto = false; } } else { _layoutCorreto = false; } } catch (Exception ex) { ///todo throw ex; } }
static void TesteDataTableFonteDeDados() { int numeroLinha = 1; FonteDeDadosOld fonteDados = new FonteDeDadosOld(); fonteDados.Arquivo = "teste.txt"; fonteDados.Local = "D:\\"; fonteDados.Origem = TipoFonteDados.TXT; fonteDados.SeparadorTXT = ';'; DataTable tabTeste = fonteDados.NewDataTable(""); DataTableReader rd = tabTeste.CreateDataReader(); tabTeste.CreateDataReader(); while (rd.Read()) { Console.WriteLine("Linha numero: " + numeroLinha.ToString()); Console.WriteLine(rd[0].ToString()); Console.WriteLine(rd[1].ToString()); Console.WriteLine(rd[2].ToString()); Console.WriteLine(rd[3].ToString()); Console.WriteLine(rd[4].ToString()); Console.WriteLine(rd[5].ToString()); numeroLinha++; } Console.ReadLine(); }
private void CarregaConfig() { FonteDeDadosOld arquivoConf = new FonteDeDadosOld(); arquivoConf.Arquivo = "ImportadorRunRunConf.Imp"; arquivoConf.Local = AppDomain.CurrentDomain.BaseDirectory; arquivoConf.Origem = TipoFonteDados.TXT; arquivoConf.PrimeiraLinhaCabeçalho = false; arquivoConf.SeparadorTXT = ':'; DataTableReader dtrConf = arquivoConf.NewReader(""); while (dtrConf.Read()) { //Ajusta o combo if (dtrConf[0].ToString() == "TIPO_CONEXAO_DEFAULT") { if (dtrConf[1].ToString() == "MSSQL") { cboTipoFonteDados.SelectedIndex = 0; } } if (dtrConf[0].ToString() == "SEVIDOR_DB_DEFAULT") { txtServidor.Text = dtrConf[1].ToString(); } if (dtrConf[0].ToString() == "NOME_DB_DEFAULT") { txtNomeDB.Text = dtrConf[1].ToString(); } if (dtrConf[0].ToString() == "LOGIN_DB_DEFAULT") { txtLogin.Text = dtrConf[1].ToString(); } if (dtrConf[0].ToString() == "SENHA_DB_DEFAULT") { txtSenha.Text = dtrConf[1].ToString(); } } }
private void btnTestarConexao_Click(object sender, EventArgs e) { if (!ValidaCamposConexao()) { MessageBox.Show("É necessário informar todos os dados de conexão", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { string local = txtServidor.Text; string login = txtLogin.Text; string senha = txtSenha.Text; string arquivo = txtNomeDB.Text; testeFonteDeDados = new FonteDeDadosOld(tipoSelecionado, local, arquivo, login, senha); MessageBox.Show(testeFonteDeDados.TestarConexão()); } }
public void ImportarParaDB() { try { //Faz a validação parcial do layout ValidaLayout(); if (_layoutCorreto) { int contadorLinha = 1; FonteDeDadosOld BancoDeDadosDestino = new FonteDeDadosOld(TipoFonteDados.SQLServer, _servidorBD, _nomeBD, _loginDB, _senhaDB); FonteDeDadosOld PlanilhaStatusReport = new FonteDeDadosOld(TipoFonteDados.Excel, _caminhoArquivo, "[Status Report Geral]", "", ""); DataTableReader dtrExcelStatusReport = PlanilhaStatusReport.NewReader("Select * from [Status Report Geral$]"); while (dtrExcelStatusReport.Read()) { //Na primeira linha vou obter a data do arquivo. if (contadorLinha == 1) { _dataHoraImportcao = dtrExcelStatusReport[1].ToString(); //Insere os dados de registro do arquivo BancoDeDadosDestino.ExecuteSemRetonro(PreparaInsertArquivo()); DataTableReader dtrExcelIDArquivo = BancoDeDadosDestino.NewReader("SELECT MAX(ID_ARQUIVO) FROM TAB_RUNRUNIT_STATUS_REPORT_ARQUIVO"); dtrExcelIDArquivo.Read(); _idTabelaArquivo = int.Parse(dtrExcelIDArquivo[0].ToString()); } if (contadorLinha > 3) { //o conteúdo do arquvo começa efetivamente na linha 4 //Cada linha será lida e os valores armazenados nos atributos indicados _cliente = dtrExcelStatusReport[0].ToString(); _projeto = dtrExcelStatusReport[1].ToString(); _id = dtrExcelStatusReport[2].ToString(); _prio = dtrExcelStatusReport[3].ToString(); _tarefa = dtrExcelStatusReport[4].ToString().Replace("'", ""); _tipo_de_tarefa = dtrExcelStatusReport[5].ToString(); _aberta_por = dtrExcelStatusReport[6].ToString(); _criada_em = dtrExcelStatusReport[7].ToString(); _para = dtrExcelStatusReport[8].ToString(); _equipe = dtrExcelStatusReport[9].ToString(); _data_desejada = dtrExcelStatusReport[10].ToString(); _entrega_estimada = dtrExcelStatusReport[11].ToString(); _entregue_em = dtrExcelStatusReport[12].ToString(); _esforço_estimado_h = dtrExcelStatusReport[13].ToString(); _primeiro_esforço_estimado_h = dtrExcelStatusReport[14].ToString(); _ja_trabalhadas_h = dtrExcelStatusReport[15].ToString(); _percentual = dtrExcelStatusReport[16].ToString(); _fase = dtrExcelStatusReport[17].ToString(); _status = dtrExcelStatusReport[18].ToString(); _Reaberta = dtrExcelStatusReport[19].ToString(); _ano = _criada_em.Substring(6, 4); _mes = _criada_em.Substring(3, 2); _dia = _criada_em.Substring(0, 2); _hora = _criada_em.Substring(11, 2); _minuto = _criada_em.Substring(14, 2); _segundo = _criada_em.Substring(17, 2); DeterminaTipoProjetoETarefa(); BancoDeDadosDestino.ExecuteSemRetonro(PreparaInsertDetalhe()); } contadorLinha += 1; } //Finalizando a importação, faz o processamento da analise. //Idéia: Hoje a alimentação da tabela de anlise é feita via procedure // posteriormente, quero fazer via C#, criando assim, independencia do BD. BancoDeDadosDestino.ExecuteSemRetonro("PROC_GERA_ANALISE_STATUS_REPORT"); } else { throw new Exception("Layout do arquivo inválido!"); } } catch (Exception ex) { throw ex; } }