none
VB.net - verificar tags XML RRS feed

  • Pergunta

  • Bom Dia... td bem com vcs?


    tenho um probleminha aqui... vou tentar explicar direitinho...

    'Olhem essa linha aqui... quero jogar o conteúdo das tags xml para o banco de dados

    Call (New OleDbCommand("Insert INTO xnfe_B (cUF,Cnf,natOp,indPag,mod,serie,nNF,dEmi,dSaiEnt,TpNF,cMunFG,cUF2,AAMM,CNPJ,mod2,serie2,nNF2,tpImp,tpEmis,tpAmb,finNFe,procEmi,verProc) Values ( '" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<cUF>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<cNF>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<natOp>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<indPag>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<mod>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<serie>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<nNF>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<dEmi>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<dSaiEnt>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<tpNF>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<cMunFG>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<NFref>.<refNF>.<cUF>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<NFref>.<refNF>.<AAMM>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<NFref>.<refNF>.<CNPJ>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<NFref>.<refNF>.<mod>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<NFref>.<refNF>.<serie>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<NFref>.<refNF>.<nNF>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<tpImp>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<tpEmis>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<tpAmb>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<finNFe>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<procEmi>.Value + "','" + xmlFile.<nfeProc>.<NFe>.<infNFe>.<ide>.<verProc>.Value + "')", conexao, transacao)).ExecuteNonQuery()

     

     

    entao... no banco de dados tem os campos (CUF,Cnf,natOp,indPag,mod,serie,nNF,dEmi,dSaiEnt,TpNF,cMunFG,cUF2,AAMM,CNPJ,mod2,serie2,nNF2,tpImp,tpEmis,tpAmb,finNFe,procEmi,verProc) para serem preenchidos certo?

     

    agora olha essas duas XMl de fornecedores aqui aqui...

     

    Fornecedor1 (Nota-se que existe a tag <AAMM>)

     

    - <ide>

      <cUF>35</cUF>

      <cNF>000053000</cNF>

      <natOp>VENDA</natOp>

      <indPag>1</indPag>

      <mod>55</mod>

      <serie>2</serie>

      <nNF>7738</nNF>

      <dEmi>2009-09-26</dEmi>

      <dSaiEnt>2009-09-26</dSaiEnt>

      <tpNF>1</tpNF>

      <cMunFG>3513801</cMunFG>

    - <NFref>

    - <refNF>

      <cUF>35</cUF>

      <AAMM>0909</AAMM>

      <CNPJ>56119415000133</CNPJ>

      <mod>01</mod>

      <serie>2</serie>

      <nNF>7738</nNF>

      </refNF>

      </NFref>

      <tpImp>1</tpImp>

      <tpEmis>1</tpEmis>

      <cDV>4</cDV>

      <tpAmb>1</tpAmb>

      <finNFe>1</finNFe>

      <procEmi>0</procEmi>

      <verProc>5.0</verProc>

      </ide>

     

    Fornecedor2 (Esse já não tem a tag <AAMM>)

     

    - <ide>

      <cUF>35</cUF>

      <cNF>999996337</cNF>

      <natOp>RET.INDUSTRIALIZACAO / BENEF.A INDUSTRIA</natOp>

      <indPag>1</indPag>

      <mod>55</mod>

      <serie>1</serie>

      <nNF>3662</nNF>

      <dEmi>2010-02-21</dEmi>

      <dSaiEnt>2010-02-21</dSaiEnt>

      <tpNF>1</tpNF>

      <cMunFG>3507605</cMunFG>

    - <NFref>

      <refNFe>35100256119415000133550020000161089999838913</refNFe>

      </NFref>

    - <NFref>

      <refNFe>35100256119415000133550020000159809999840197</refNFe>

      </NFref>

    - <NFref>

      <refNFe>35100256119415000133550020000160639999839363</refNFe>

      </NFref>

    - <NFref>

      <refNFe>35100256119415000133550020000161099999838902</refNFe>

      </NFref>

      <tpImp>1</tpImp>

      <tpEmis>1</tpEmis>

      <cDV>9</cDV>

      <tpAmb>1</tpAmb>

      <finNFe>1</finNFe>

      <procEmi>0</procEmi>

      <verProc>1.14n</verProc>

      </ide>

     

     

    Nem todos os fornecedores mandam as xmls com a tag <AAMM>, porem os fornecedores que mandam com essa tag a “bendita” tem qu estar gravada no banco de dados... não posso deixar de gravar esse campo se existir na xml...

     

    Ai o que quero fazer... ver um modo que o VB faça uma varredura antes de gravar o dado... e se nao encontrar a tag <AAMM> ele insira um valor qualquer la...  e se tiver... grave normal...

    tem varias tags com esse problema... mas resolvendo um eu acabo com todos esses problema s

    Ae eu queria uma luz... para uma solução legal...

    quarta-feira, 24 de fevereiro de 2010 12:29

Respostas

  • Cara, usa a classe Data.Dataset para ler o arquivo XML (teuDataSet.ReadXML("Caminho do arquivo")). O dataset é composto de datatables, q são estruturadas como tabelas de banco de dados, conforme os campos do XML.
    quarta-feira, 24 de fevereiro de 2010 15:50