Pessoal, estou com o seguinte problema no meu código, eu não estou conseguindo gravar a primeira linha da planilha Excel, porém eu consigo gravar somente da segunda linha adiante, quando eu faço a consulta no meu banco de dados não aparece o nome da pessoa da primeira linha, que no caso se chama interessado lá no banco de dados, somente da segunda a diante que grava. Printei as imagens para vocês poderem visualizar na prática, consigo ler os três registros da planilha, porém não consigo gravar o da primeira linha, pega somente da segunda linha adiante galera. postarei meu código, preciso finalizar isso até quarta, queria ver se alguém pode me ajudar. Alguém sabe o que posso aplicar para resolver olhando meu código? Vou postar também meu código para ficar melhor a entender. No interessado mostra como tipo nulo e dá o seguinte erro:
NHibernate.Exceptions.GenericADOException: could not insert:[SDPJDominio.Domain.Interessado#19516][SQL: INSERT INTO sdpj_interessado (TIP_INTERESSADO, CPF_CNPJ_INTERESSADO, NME_INTERESSADO, DSC_ENDERECO, NUM_ENDERECO, DSC_COMPLEMENTO, NUM_CEP, COD_BAIRRO, COD_MUNICIPIO, COD_INTERESSADO) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)] ---> Oracle.DataAccess.Client.OracleException:
ORA-01400: não é possível inserir NULL em ("U_SDP"."SDPJ_INTERESSADO"."NME_INTERESSADO")
Meu código:
protectedvoid importar_Click(object sender,EventArgs e){DataTableDados=newDataTable();if(selecionarArquivo.HasFile){if(Path.GetExtension(selecionarArquivo.FileName)!=".xlsx"&&Path.GetExtension(selecionarArquivo.FileName)!=".xls")ClientScript.RegisterStartupScript(typeof(string),"Erro","<script>alert('Somente arquivos em excel')</script>");else{if(selecionarArquivo.FileContent!= null){
string Excel=AppDomain.CurrentDomain.BaseDirectory+ selecionarArquivo.FileName;
selecionarArquivo.SaveAs(Excel);Dados=DadosExcel(Excel);
var registrosValidos =((DataTable)Dados).Rows.OfType<DataRow>().Skip(5);
registrosValidos = registrosValidos.Take(registrosValidos.Count()-1);int quantidade_por_pagina =100;int total_de_paginas;int qtd_total_registros = registrosValidos.Count();
total_de_paginas =(int)Math.Ceiling((double)qtd_total_registros / quantidade_por_pagina);bool layoutValido =VerificaLayout(Dados);if(!layoutValido)ClientScript.RegisterStartupScript(typeof(string),"Erro","<script>alert('Layout do arquivo fora do padrão definido para importação.')</script>");else{VerificacaoPreliminar(registrosValidos);List<System.Threading.Tasks.Task>TarefasParalelas=newList<System.Threading.Tasks.Task>();for(int i =0; i < total_de_paginas; i++){
var pagina = i;
var linhasPorPagina = registrosValidos.Skip(pagina * quantidade_por_pagina).Take(quantidade_por_pagina);
var data_rows_divididos = linhasPorPagina.SplitList(10);
foreach (var aaa in data_rows_divididos){TarefasParalelas.Add(ProcessamentoTabela(aaa));}}
foreach (var tarefa in TarefasParalelas)
tarefa.Start();System.Threading.Tasks.Task.WaitAll(TarefasParalelas.ToArray());ClientScript.RegisterStartupScript(Page.GetType(),"Carregando...","<script>document.getElementById('progresso').style.width = '60%';</script>");if(listaGravarProcInter.Count!=0){
var ListaSemDuplicados= listaGravarProcInter.Distinct().ToList();
foreach (ProcessoInteressado item in ListaSemDuplicados){
aplProcessoInteressado.salvar(item);}}if(listaLogsAuditoria.Count!=0){
foreach (var item in listaLogsAuditoria){
aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), item,DateTime.Now);}}else{
logimportacao.Visible=true;
loglbl.Text= log.ToString();//ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '100%';</script>");ClientScript.RegisterStartupScript(typeof(string),"Alerta","<script>alert('Arquivo importado com sucesso. Verifique o log na tela. ')</script>");}/*else
{
logimportacao.Visible = true;
loglbl.Text = log.ToString();
ClientScript.RegisterStartupScript(typeof(string), "Erro", "<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");
}*/}}}}}privateSystem.Threading.Tasks.TaskProcessamentoTabela(IEnumerable<DataRow> dadosparam){Action<object> processamento =(dados)=>{NHibernate.Context.ThreadStaticSessionContext.Bind(NhibernateHelper.Teste().OpenSession());
foreach (var linha in (IEnumerable<DataRow>)dados){List<Processo> listaProcessoExistente =newList<Processo>();Processo processo = null;Interessado interessado =newInteressado();if(!arquivoInvalidado)//ClientScript.RegisterStartupScript(Page.GetType(), "Carregando...", "<script>document.getElementById('progresso').style.width = '30%';</script>");//Verifica se existe mais de 1 interessado com mesmo CPF cadastrado, salva os interessados inexistentes e altera os cadastros q tem interessados duplicados.this.ValidaDuplicidadeInteressado();if(!linha.ItemArray[1].ToString().Equals(""))
processo = aplProcesso.consultarPorNProcessoER(linha.ItemArray[1].ToString());if(processo == null){if(!linha.ItemArray[2].ToString().Equals(""))
processo = aplProcesso.consultarPorNProcessoER(linha.ItemArray[2].ToString());}if(linha.ItemArray[7].ToString().Length==14)
interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString()));if(linha.ItemArray[7].ToString().Length==18)
interessado = aplInteressado.ConsultarPorCPF(AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString()));if(processo != null){List<ProcessoInteressado> listaprocinter = aplProcessoInteressado.consultarPorIdProcesso(processo.Codigo);if(listaprocinter.Exists(o => o.Interessado== interessado))
log.Append("O interessado informado na linha "+(1)+" foi adicionado novamente ao processo "+ processo.NumProcessoJudicial+" <br>");
setProcInter(processo, interessado, linha);}else{//Novo Processo - 6.3
processo =newProcesso();
processo.Interessado= interessado;
processo.NumProcessoJudicial= linha.ItemArray[2].ToString().Trim();
processo.RenunciaCredito="N";
processo.Situacao=newAplSituacao().ConsultarPorId(1);
processo.HonorarioDativo="S";
processo.Reclamado=newAplReclamado().buscaItem(2);
processo.TipoDocumento=newAplTipoDocumento().buscaItem(4);
processo.TipoProcesso="O";if(linha.ItemArray[5].ToString().Contains("juizado"))
processo.Tribunal=newAplTribunal().buscaItem(71);else
processo.Tribunal=newAplTribunal().buscaItem(3);
processo.NaturezaDespeza=newAplNaturezadeDespesa().buscaItem(3);VaraExecucao vara =newVaraExecucao();if(!linha.ItemArray[3].ToString().Equals("")&&!linha.ItemArray[5].ToString().Equals("")){List<VaraExecucao> listaVaraComarca = aplVaraExecucao.ConsultarPorNomeVaraNomeComarca(linha.ItemArray[5].ToString().Trim(), linha.ItemArray[3].ToString().Trim());if(listaVaraComarca.Count!=0){if(linha.ItemArray[4].ToString().Equals("")){
vara = listaVaraComarca.Find(o => o.NumeroVara== null);}else{
vara = listaVaraComarca.Find(o => o.NumeroVara==int.Parse(linha.ItemArray[4].ToString().Trim()));}}}if(vara != null && vara.Codigo!=0){
processo.VaraExecucao= vara;}else{
logimportacao.Visible=true;
loglbl.Text= log.ToString();ClientScript.RegisterStartupScript(typeof(string),"Erro","<script>alert('Arquivo não importado. Verifique o log de erros na tela. ')</script>");}
var ListaSemDuplicados= listaGravarProcesso.Distinct().ToList();
aplProcesso.gravar(processo);/*aplLog.LogarAtividade(aplUsuario.buscaPorLogin(ObterUsuarioAutenticado().Login), "Importação do processo de número judicial: " + processo.NumProcessoJudicial
+ ". Interessado: " + processo.Interessado.Nome + " - " + processo.Interessado.CPF_CNPJ + ". Tribunal "
+ processo.Tribunal.NomeTribunal + ".", DateTime.Now);*///log.Append("O processo " + processo.NumProcessoJudicial + " informado na linha " + (i + 1) + " foi cadastrado com sucesso. <br>");*/
setProcInter(processo, interessado, linha);}}ISession sessao =ThreadStaticSessionContext.Unbind(NhibernateHelper.Teste());if(sessao != null){if(sessao.Transaction!= null && sessao.Transaction.IsActive){
sessao.Transaction.Rollback();}else{//sessao.Flush();}
sessao.Close();}};System.Threading.Tasks.Task tarefa_executar =newSystem.Threading.Tasks.Task(processamento, dadosparam);return tarefa_executar;}privateInteressado setInteressado(DataRow linha){Interessado interessado =newInteressado();AplMunicipio aplMunicipio =newAplMunicipio();AplBairro aplBairro =newAplBairro();
interessado.Nome= linha.ItemArray[6].ToString().ToUpper();if(!linha.ItemArray[8].ToString().Equals(""))
interessado.Endereco= linha.ItemArray[8].ToString().ToUpper();if(!linha.ItemArray[9].ToString().Equals(""))
interessado.Numero= interessado.Complemento= linha.ItemArray[9].ToString();if(!linha.ItemArray[10].ToString().Equals(""))
interessado.Complemento= linha.ItemArray[10].ToString().ToUpper();if(!linha.ItemArray[13].ToString().Equals("")){//Municipio municipio = aplMunicipio.ConsultarPorNome(linha.ItemArray[13].ToString().ToUpper());Municipio municipio =this.listaMunicipios.Find(m =>Utilitarios.RemoveAcentos(m.Nome).ToUpper()==Utilitarios.RemoveAcentos(linha.ItemArray[13].ToString()).ToUpper());if(municipio == null){
municipio =newMunicipio();
municipio.Estado=newAplEstado().buscaItem(1);
municipio.Nome= linha.ItemArray[13].ToString().ToUpper();//obter lista sem registros duplicados (Robson)
var ListaSemDuplicados= listaMunicipios.Distinct().ToList();
aplMunicipio.gravar(municipio);}
interessado.Municipio= municipio;// aplMunicipio.ConsultarPorNome(ds.Tables[0].Rows[i].ItemArray[13].ToString().ToUpper());if(!String.IsNullOrEmpty(linha.ItemArray[11].ToString())){//Bairro bairro = aplBairro.ConsultarPorNomeCodMunicipio(linha.ItemArray[11].ToString().ToUpper(), municipio.Codigo);List<Bairro> listaBairro = aplBairro.ListaPorIdMunicipio(municipio.Codigo);Bairro bairro = listaBairro.Find(b =>Utilitarios.RemoveAcentos(b.Descricao).ToUpper()==Utilitarios.RemoveAcentos(linha.ItemArray[11].ToString()).ToUpper());if(bairro == null){
bairro =newBairro();
bairro.CodMunicipio= municipio;
bairro.Descricao= linha.ItemArray[11].ToString().ToUpper();//obter lista sem registros duplicados (Robson)
var ListaSemDuplicados= listaBairro.Distinct().ToList();
aplBairro.gravar(bairro);}
interessado.Bairro= bairro;// aplBairro.ConsultarPorNomeCodMunicipio(ds.Tables[0].Rows[i].ItemArray[11].ToString().ToUpper(), municipio.Codigo);}}if(!linha.ItemArray[12].ToString().Equals(""))
interessado.Cep= linha.ItemArray[12].ToString();if(!linha.ItemArray[7].ToString().Equals(""))if(linha.ItemArray[7].ToString().Length==14){
interessado.CPF_CNPJ =AuxiliarCPF_CNPJ.DesformataCPF(linha.ItemArray[7].ToString());
interessado.Tipo=1;}elseif(linha.ItemArray[7].ToString().Length==18){
interessado.CPF_CNPJ =AuxiliarCPF_CNPJ.DesformataCNPJ(linha.ItemArray[7].ToString());
interessado.Tipo=2;}else{
log.Append("O CPF/CNPJ informado na célula H"+(1)+" está em um formato incorreto. Favor corrigir a planilha. <br>");
arquivoInvalidado =true;}return interessado;
Pergunta
rtavix
Pessoal, estou com o seguinte problema no meu código, eu não estou conseguindo gravar a primeira linha da planilha Excel, porém eu consigo gravar somente da segunda linha adiante, quando eu faço a consulta no meu banco de dados não aparece o nome da pessoa da primeira linha, que no caso se chama interessado lá no banco de dados, somente da segunda a diante que grava. Printei as imagens para vocês poderem visualizar na prática, consigo ler os três registros da planilha, porém não consigo gravar o da primeira linha, pega somente da segunda linha adiante galera. postarei meu código, preciso finalizar isso até quarta, queria ver se alguém pode me ajudar. Alguém sabe o que posso aplicar para resolver olhando meu código? Vou postar também meu código para ficar melhor a entender. No interessado mostra como tipo nulo e dá o seguinte erro:
Meu código:
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.