none
C#+SqlServer : UpDate dentro do Select RRS feed

  • Pergunta

  • Desenvolvedores, Excelente Noite!

    Estou com um problema aqui, e já não consegui enxergar onde está o erro : C# + SQLSERVER

     vQuery = "Select V1_002,V1_025,V1_039,V1_034,V1_032,V1_024 ";
     vQuery +="from Spool Where V1_042='"+fNomeUsu+"' Order By V1_002 ";
     using (SqlCommand cmd = new SqlCommand(vQuery, sqlconn))
     {
           SqlDataReader dr = cmd.ExecuteReader();
           while (dr.Read() != false)
           {
    	  -- aqui eu pegos as colunas e faço diversos tratamentos.... 
    		  
    	  --- daí, quero aplicar um UpDate no registro que estou lendo no momento...
              vQuery = "Update Spool Set ";
              vQuery += "V1_025='" + fNovo_V1_025 + "',";
              vQuery += "V1_026='" + fCif + "',";
              vQuery += "V1_027='" + fCif + "',";
              vQuery += "V1_024='" + mSeqIm + " : " + fSeqImpress.ToString().PadLeft(08, '0') + "',";
              vQuery += "V1_031='" + vNumPostal + "' ";
              vQuery += "Where V1_025='" + mIdRg + "' and V1_042='" + fNomeUsu + "' ";
    
              SqlCommand cmdUp = new SqlCommand(vQuery, sqlconn);
             
    	  cmdUp.ExecuteNonQuery(); ----> aqui! Já existe um DataReader aberto associado a este Command que deve ser fechado primeiro. 
              cmdUp.Dispose();                    
            }
     }

    Acima eu deu um corte no código pra ficar melhor a visualização. Em resumo... Num loop, lendo os registros de uma tabela, quando leio o primeiro registro, leio as colunas, faço uns tratamentos...quero dar um UpDate na coluna............dá erro!

    Grato!


    Gilberto Herminio Desenvolvedor - Mogi das Cruzes-SP desenvolvedor.gha@gmail.com

    quinta-feira, 23 de março de 2017 23:45

Respostas

  • Olá,

    Para resolver isso, experimente adicionar a sua connectionstring o seguinte parâmetro: MultipleActiveResultSets=True

    Isso ativará o recurso de MARS - Multiple Active Result Sets que permite abrir multiplos objetos SqlDataReader.

    Espero ter ajudado!
    Hudson.

    • Marcado como Resposta Gilberto_Mogi sexta-feira, 24 de março de 2017 00:40
    sexta-feira, 24 de março de 2017 00:22

Todas as Respostas

  • Olá,

    Para resolver isso, experimente adicionar a sua connectionstring o seguinte parâmetro: MultipleActiveResultSets=True

    Isso ativará o recurso de MARS - Multiple Active Result Sets que permite abrir multiplos objetos SqlDataReader.

    Espero ter ajudado!
    Hudson.

    • Marcado como Resposta Gilberto_Mogi sexta-feira, 24 de março de 2017 00:40
    sexta-feira, 24 de março de 2017 00:22
  • Olá Hudson, Excelente Noite!

    FUNCIONOU !!!

    Passei a tarde inteira quebrando a cabeça comeste problema!!!

    Grato e Ainda +Sucesso!!!!!!!


    Gilberto Herminio Desenvolvedor - Mogi das Cruzes-SP desenvolvedor.gha@gmail.com

    sexta-feira, 24 de março de 2017 00:36